【发布时间】:2015-10-20 22:18:53
【问题描述】:
我想在同一个 shell 中运行多个命令。经过一些研究,我发现我可以使用来自Popen 的返回过程保持外壳打开。然后我可以读写stdin 和stdout。我尝试这样实现它:
process = Popen(['/bin/sh'], stdin=PIPE, stdout=PIPE)
process.stdin.write('ls -al\n')
out = ' '
while not out == '':
out = process.stdout.readline().rstrip('\n')
print out
我的解决方案不仅丑陋,而且不起作用。 out 永远不会是空的,因为它交给了readline()。当没有内容可读时,如何成功结束while 循环?
【问题讨论】:
标签: python subprocess stdout popen readline