0

ディレクトリ内の各ファイルに対してシェル コマンドを実行したいと考えています。エラーが発生し続けます。

コードは次のとおりです。

import os
from subprocess import call

for dirname, dirnames, filenames in os.walk('.'):
    for filename in filenames:
        jpg = os.path.join(dirname, filename)
        call(["./curl_recognize.sh", jpg, jpg".txt", "-t txt"])

エラーは次のとおりです。

    call(["./curl_recognize.sh", jpg, jpg".txt", "-t txt"])
                                              ^
SyntaxError: invalid syntax
4

1 に答える 1

3

「.txt」の前に+を追加します。それはそれを修正します。

+演算子は、Pythonで文字列を連結します。両方の文字列が定数の場合、それらを並べて配置できます("foo""bar"は"foobar"と同じです)が、一方が変数(または他の種類の式)の場合は、 +演算子を使用する必要があります。

コード内の無関係な問題:「-ttxt」を「-t」、「txt」に変更する必要がある場合もあります。前者は「-t txt」をプログラムへの単一の引数として渡し、ほとんどすべての引数を-解析プログラムは、フラグ( "-t")とその値( "txt")を別々の引数として期待します。

于 2012-12-14T03:34:23.447 に答える