子进程命令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_output
和Popen
的区别在于,popen
是非阻塞函数(意味着您可以继续执行程序而无需等待调用完成),而check_output
是阻塞函数。
意思是如果你使用subprocess.check_output()
,你不能有实时输出。
尝试切换到Popen()
。
【讨论】:
以上是关于子进程命令Python的实时输出状态[重复]的主要内容,如果未能解决你的问题,请参考以下文章
实时打印使用 Python 中的子进程启动的 bash 命令的结果