2012-03-17 8 views
2

免責事項:私はPythonの初心者ですが、Drupalプログラミングの経験があります。初心者:何百もの引数を持つpython subprocess.call

私はこれがあります。

f = ['/path/1.jpg', '/path/2.jpg', '/path/3.jpg'] #less than 1500 files 

をして(私はこの

call(['c:/program files/ABBYY FineReader 10/finereader.exe'] + f) 

を行うために必要があるが、引数の制限がありますhttp://stackoverflow.com/questions/2381241/what- -subprocess-popen-arg-length-of-args-parameter)は32K文字ですので、/ pathを先に削除する必要があります。 .exeがファイルを見つけることを可能にするにはどうすればよいですか?

ありがとうございます!

答えて

1

subprocess.callのargsにcwd='/path/'を追加する必要があります。これにより、実行可能ファイルの作業ディレクトリが'/path/'に変更されます(ただし、実行ファイルの検索には使用されないので、絶対パスを指定してください)。

その後、彼らはすべて同じパスにあると仮定すると、あなたが使用することができます:あなたがWindows上でいるようだ

import os 
f = [os.path.basename(x) for x in f] 
+0

WIM、あなたは素晴らしいです!ありがとう! –

0

。この場合、あなたはfinereader.exe自体によって処理される可能性がありますワイルドカード'*.jpg'を指定しようとすることができます:

check_call(r'c:\path\to\finereader.exe *.jpg', cwd=r'c:\jpg\dir') 
関連する問題