Eclipse中的Python os.system()

时间:2012-05-10 00:37:33

标签: python eclipse pydev

我正在使用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有问题,但我不确定是什么。

1 个答案:

答案 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中的奇怪行为......