我正在使用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有问题,但我不确定是什么。
答案 0 :(得分:0)
此问题的一个解决方法可能是使用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中的奇怪行为......