流程输出

时间:2014-02-21 06:59:09

标签: python subprocess

我必须执行命令并将其输出存储在文件中。输出跨越多个页面,我必须多次按Enter键才能看到完整的输出(类似于当一个人返回多个页面时)。我正在考虑使用子进程模块,但是当进程提示时,如何为进程提供输入。

2 个答案:

答案 0 :(得分:0)

免责声明:我不知道你实际执行了哪个命令,所以这只是在黑暗中刺伤。

您不必提供任何输入 将命令输出管道化为cat可以解决您的问题:

less testfile.txt | cat

此外,如果你的目标是将输出存储在另一个文件中,你可以简单地对此(这将覆盖):

less testfile.txt > testfilecopy.txt

(这会附加):

less textfile.txt >> logfile.txt

请参阅:https://unix.stackexchange.com/questions/15855/how-to-dump-a-man-page

答案 1 :(得分:0)

最好的解决方案是检查进程是否不支持在“批处理模式”下运行的命令行标志,禁用分页或类似的东西来抑制任何此类“等待”。但我想你已经做到了。鉴于你必须以交互方式输入“-help”,告诉我它可能不是标准的unix命令,它通常很容易在子进程中运行。

在这种情况下,最好的选择是使用expectpexpect下有python绑定。

期望脚本往往相当丑陋且容易出错。你必须勤于处理错误。我只有有限的实践经验,因为我只修改了一些现有的脚本。我自己还没有写过,但是从我们现有的脚本中我知道它们有效,而且它们可靠地工作。