【问题标题】:Live output status from subprocess command Python [duplicate]子进程命令Python的实时输出状态[重复]
【发布时间】: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
  • 请不要以改变其主题的方式编辑您的问题。这使以前的答案无效。
  • 抱歉,我要问一个新问题

标签: python python-3.x shell subprocess


【解决方案1】:

来自this 回复:

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

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

尝试切换到Popen()

【讨论】:

    猜你喜欢
    • 2013-08-27
    • 2021-12-10
    • 2022-01-22
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多