3

我正在使用 Python 调用某人的程序:

print cmd
os.system(cmd)

以下是print命令的输出,它显示带有一些参数的cmd调用,然后将输出重定向到.sclitedump

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

解决此问题的一种方法是使用 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 回答