1
我目前有这个代码,它工作并产生你所期望的输出,即如果你运行'ls -ltr |更少'从终端。如何从Python中的管道命令获取交互式输出?
p1 = subprocess.Popen(shlex.split('ls -ltr'), stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
p2 = subprocess.Popen(shlex.split('less'), stdin=p1.stdout,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print p2.communicate()
是否有使用subprocess.Popen或其他任何获得交互式输出,您可以通过滚动和键盘输入的方式进入命令,你会如果你直接从终端运行的命令?
我认为人们通常会为这类事情提供类似“pexpect”的东西(尽管我自己从未使用过)。 – mgilson 2012-07-30 12:20:28