2012-05-10 16 views
3

に私が誰かのプログラムを呼び出すためのPythonを使用しています:Pythonのos.system()Eclipseの

print cmd 
os.system(cmd) 

この次は、いくつかのパラメータ、その後、リダイレクトでcmd通話scliteを示しprintコマンドの出力では、出力は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に何か問題があると推測していますが、私は何がわかりません。

+0

時間... –

+0

の場合あなたはそのルートに行くために起こってしまうでしょう。おそらく、Visual Studio + http://pytools.codeplex.com/を試してみてください。 – Mehrdad

+0

私はWindowsでは動作しません。シェルリダイレクト(>)は標準のWindowsシェルで動作しますか?それが問題だろうか? – mgilson

答えて

0

この問題の回避策はpopenのを使用している可能性1 - Eclipseを使用して停止する

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の奇妙な行動を説明していないこと...

関連する問題