1

我通过使用 cmd 创建 Popen 对象并使用它运行另一个程序没有问题,其中输出是我发送的参数...

k = subprocess.Popen(output, stdout=PIPE, stdin=PIPE, stderr=PIPE)

但后来我想使用相同的 Popen 对象通过相同的命令提示符运行另一个命令。我使用了communicate(),它也没有工作,标准输出也是如此。我现在将 stdin.write() 与 stdout.readline() 结合使用。

f = open("sample.txt")    
reed = f.read()
f.close()
k.stdin.write(reed)
p="i"
while p.find("0.0)") == -1:
    p = p+k.stdout.readline()
print p

我应该怎么办?

编辑

p = k.communicate(input=reed)[0]

那是我唯一需要的。我不知道我必须在交流中使用“输入”,我一直只是使用交流(芦苇)。我什至不需要那个愚蠢的老while循环。

4

1 回答 1

0

您是否尝试过使用 subprocess.call 代替?

http://docs.python.org/2/library/subprocess.html

于 2013-07-11T18:21:07.417 回答