【问题标题】:Run a process in python, writing the process output to stdout? [duplicate]在python中运行一个进程,将进程输出写入stdout? [复制]
【发布时间】:2016-06-16 17:44:59
【问题描述】:

我想从 python 脚本运行一个进程,在它运行时阻塞,并将进程的输出写入标准输出。

我该怎么做?

我查看了“子流程”的文档,但无法解决。

根据要求编辑此问题以解释其不同之处: 请参阅上面的现有文本:并将流程的输出写入标准输出

【问题讨论】:

  • 打印到标准输出:stackoverflow.com/questions/2082850/…
  • 谢谢 - 等到命令完成是我追求的一个方面。我想我可以用call 来实现这一点(这就是我发现的)。一个额外的功能是我还希望将输出流式传输到我的控制台。
  • 为什么不直接使用subprocess.check_call([command])

标签: python


【解决方案1】:

您可以为此使用wait() 方法。

例如:

# main_script.py

#some code

p1 = subprocess.Popen(['/path/to/process.sh'], shell=True) 
p1.wait()

#rest of code when process is done

【讨论】:

    【解决方案2】:

    你可以使用object.communicate()[0]

    p=subprocess.Popen(["python","1st.py"],stdin=PIPE,stdout=PIPE)
    print p.communicate()[0]
    
    Communicate() will hold the last processed process output.
    

    【讨论】:

      猜你喜欢
      • 2017-09-19
      • 2014-07-21
      • 2022-01-15
      • 1970-01-01
      • 2021-04-26
      • 2018-01-21
      • 1970-01-01
      • 2018-09-11
      • 2021-03-28
      相关资源
      最近更新 更多