首页 > 后端开发 > Python教程 > 如何在 Python 的'subprocess”模块中有效地通过管道传输外部命令输出?

如何在 Python 的'subprocess”模块中有效地通过管道传输外部命令输出?

Mary-Kate Olsen
发布: 2024-12-22 16:17:14
原创
319 人浏览过

How Can I Efficiently Pipe External Command Outputs in Python's `subprocess` Module?

使用 subprocess 通过管道执行外部命令

使用 subprocess 模块时,可能需要使用管道来连接一个外部命令的输出作为输入到另一个。为此,您可以在 subprocess.check_output() 函数中使用 shell=True 参数。

但是,出于安全考虑,在使用 shell=True 时务必谨慎。相反,建议为每个命令创建单独的进程并相应地通过管道传输输出。

要进一步详细说明,请考虑以下示例:

ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE)
output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout)
ps.wait()
登录后复制

在这种情况下, ps 命令是执行,其输出通过管道传输到 grep 命令中。 grep 的输出结果将存储在“output”变量中。

或者,如果不需要 shell=True,您可以使用 str.find 来获得相同的结果:

output = subprocess.check_output(('ps', '-A'))
process_found = 'process_name' in output
登录后复制

以上是如何在 Python 的'subprocess”模块中有效地通过管道传输外部命令输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板