当前位置: 首页 > 面试题库 >

如何使用Python运行子进程,等待其退出并以字符串形式获取完整的stdout?

端木乐语
2023-03-14
问题内容

因此,我注意到subprocess.call在等待命令完成之后再继续执行python脚本时,除了使用之外,我无法获取标准输出subprocess.Popen。是否有其他替代函数调用会等到完成?(我也尝试过Popen.wait

注意:我正试图避免os.system打电话

result = subprocess.Popen([commands...,
                        self.tmpfile.path()], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = result.communicate()
print out+"HIHIHI"

我的输出:

HIHIHI

注意:我正在尝试wine与此。


问题答案:

我正在使用以下构造,尽管您可能要避免使用shell=True。这将为您提供任何命令的输出和错误消息,以及错误代码:

process = subprocess.Popen(cmd, shell=True,
                           stdout=subprocess.PIPE, 
                           stderr=subprocess.PIPE)

# wait for the process to terminate
out, err = process.communicate()
errcode = process.returncode


 类似资料:
  • 所以我注意到虽然它在继续处理python脚本之前等待命令完成,但除了使用之外,我没有办法获得stdout。是否有其他的函数调用会等待它完成?(我还尝试了) 注意:我正在尝试避免调用

  • 问题内容: 对于子进程,和函数可用于暂停当前进程的执行,直到子进程退出。但是此功能不能用于非子进程。 是否有另一个函数可以等待任何进程的退出? 问题答案: 什么都不等于。通常的做法是使用轮询,寻找返回值-1和的,表明进程已经一去不复返了。

  • 我正在尝试将bash脚本迁移到Python。 bash脚本并行运行多个OS命令,然后在继续之前等待它们完成,即: 命令 我希望使用Python子进程实现同样的目标。这可能吗?如何等待subprocess.call命令完成后再继续?

  • 问题内容: JS中是否有办法以字符串形式获取 html 标记内的整个HTML ? 问题答案: MS 不久前添加了和属性。 根据MDN的说明,Firefox 11,Chrome 0.2,InternetExplorer 4.0,Opera 7,Safari 1.3,Android,Firefox Mobile 11,IE Mobile,Opera Mobile和SafariMobile支持。在DOM

  • 本文向大家介绍python Popen 获取输出,等待运行完成示例,包括了python Popen 获取输出,等待运行完成示例的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,直接上代码吧! 以上这篇python Popen 获取输出,等待运行完成示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 我使用JSCH-SSH库在“shell”通道中执行命令,但无法找到一种方法来做两件事:- 1)如何查找命令是否在远程unix box上完全执行? 2)如何在String中捕获命令输出,而不是在System.out控制台上打印? 下面是我的代码片段,它可以很好地在系统上显示shell命令输出。出来 注意:我不想使用“exec”通道,因为它为每个命令启动一个新进程,并且不记得导出的“session”变