3

私はPythonを使って誰かのプログラムを呼び出しています:

print cmd
os.system(cmd)

以下はprintコマンドの出力です。いくつかのパラメータを含むcmd呼び出しを示しsclite、出力を にリダイレクトしますdump

C:/travel/sctk-2.4.0/bin/sclite -r C:/travel/tempRef.txt -h C:/travel/tempTrans.txt -i spu_id > C:/travel/dump

cygwin でコマンドを実行するとdump、目的の出力が含まれます。cygwin で Python を開いてそこで使用os.system(cmd)するとdump、目的の出力が含まれます。cygwin から Python スクリプトを実行するとdump、目的の出力が含まれます。Eclipse で Python スクリプトを実行すると、dump何も含まれていません。つまり、ファイルは作成されますが、何も書き込まれません。

私はsubprocess(cmd,shell=True)同じ結果で同じことを試しました.Eclipseでスクリプトを実行すると、他のファイルは正常に動作しますが、空のファイルになります。Eclipse/Pydev に何か問題があると推測していますが、何が原因かわかりません。

4

1 に答える 1

0

この問題の回避策の 1 つは、Popen を使用することです。

from subprocess import Popen
cmd="C:/travel/sctk-2.4.0/bin/sclite -r C:/travel/tempRef.txt -h C:/travel/tempTrans.txt -i spu_id"
f=open('C:/travel/dump','w')
p=Popen(cmd.split(),stdout=f)

しかし、それでもEclipseでの奇妙な動作は説明できません...

于 2012-05-10T12:33:43.783 に答える