【发布时间】:2013-02-27 18:09:16
【问题描述】:
我创建了一个子进程使用
subprocess.Popen(shlex.split(command), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
它调用的命令会打印各种信息,然后等待\n再打印更多信息。最终,当\n 被按下的次数足够多时,该过程将结束。我需要能够以编程方式模拟按下\n 直到进程结束,以及捕获所有输出。我不希望将输出打印到终端。我希望它被返回并设置为一个变量。
我该怎么做?
【问题讨论】:
-
换行数是否必须是常数?或者它可以在运行之间改变吗?
-
不推荐使用 popen 或 popen2。使用 subprocess 模块 - 它为您提供了一个统一的接口和流来读取/写入数据。
-
@SeanMcSomething 呃,OP 是使用
subprocess。 -
@Nathaniel 还需要检查其他内容 - 当通过
subprocess调用时,它是否真的会进行换行提示,而不是直接运行它?许多“分页”命令行程序在直接调用而不是从终端调用时实际上并不使用分页。 -
我还不确定。
标签: python shell subprocess