子进程命令Python的实时输出状态[重复]

Posted

技术标签:

【中文标题】子进程命令Python的实时输出状态[重复]【英文标题】:Live output status from subprocess command Python [duplicate] 【发布时间】:2020-10-19 17:46:11 【问题描述】:

我正在编写一个脚本来使用 subprocess.check_output 获取 netstat 状态。

cmd = 'netstat -nlpt'

result = subprocess.check_output(cmd, shell=True, timeout=1800)
print(result.decode('utf-8'))

以上运行完美。有什么办法可以得到直播输出。我听说 poll() 函数可以完成这项工作。在live output from subprocess command 他们正在使用 popen 但我正在使用 check_output 请有人帮我解决这个问题。谢谢!

【问题讨论】:

其实不,他们使用的是 Popen,这里我使用的是 check_output 你不能使用check_output 为什么当你想要生命输出时,你会使用check_output 请不要以改变其主题的方式编辑您的问题。这使以前的答案无效。 抱歉,我要问一个新问题 【参考方案1】:

来自this 回复:

check_outputPopen 的区别在于,popen 是非阻塞函数(意味着您可以继续执行程序而无需等待调用完成),而check_output 是阻塞函数。

意思是如果你使用subprocess.check_output(),你不能有实时输出。

尝试切换到Popen()

【讨论】:

以上是关于子进程命令Python的实时输出状态[重复]的主要内容,如果未能解决你的问题,请参考以下文章

实时打印使用 Python 中的子进程启动的 bash 命令的结果

Python子进程获取孩子的输出[重复]

两个子进程之间的 Python 管道输出

Python:如何写入子进程的标准输入并实时读取其输出

如何在python子进程模块中执行用户输入(如日期)作为命令[重复]

是否可以将 python 子进程的输出实时流式传输到网页?