当前位置: 首页 > 知识库问答 >
问题:

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

程树
2023-03-14

所以我注意到subprocess.call虽然它在继续处理python脚本之前等待命令完成,但除了使用subprocess.popen之外,我没有办法获得stdout。是否有其他的函数调用会等待它完成?(我还尝试了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

共有1个答案

司马高明
2023-03-14

我正在使用以下构造,尽管您可能希望避免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脚本时,除了使用之外,我无法获取标准输出。是否有其他替代函数调用会等到完成?(我也尝试过) 注意:我正试图避免打电话 我的输出: 注意:我正在尝试与此。 问题答案: 我正在使用以下构造,尽管您可能要避免使用。这将为您提供任何命令的输出和错误消息,以及错误代码:

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

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

  • 进程退出和等待进程 当进程执行完它的工作后,就需要执行退出操作,释放进程占用的资源。ucore分了两步来完成这个工作,首先由进程本身完成大部分资源的占用内存回收工作,然后由此进程的父进程完成剩余资源占用内存的回收工作。为何不让进程本身完成所有的资源回收工作呢?这是因为进程要执行回收操作,就表明此进程还存在,还在执行指令,这就需要内核栈的空间不能释放,且表示进程存在的进程控制块不能释放。所以需要父进

  • 问题内容: 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

  • 问题内容: 我有一个这样的数据框: Calling 将返回 现在,我想对列“ C”执行“相同”操作。因为该列包含字符串,所以sum()不起作用(尽管您可能认为它将字符串连接在一起)。我真正想看到的是每个组的字符串列表或一组字符串,即 我一直在尝试找到方法来做到这一点。 尽管Series.unique()(http://pandas.pydata.org/pandas-docs/stable/gen