首页 > 后端开发 > Python教程 > 如何在 Python 中将 shell 命令输出捕获为字符串?

如何在 Python 中将 shell 命令输出捕获为字符串?

Mary-Kate Olsen
发布: 2024-12-23 06:36:34
原创
666 人浏览过

How can I capture shell command output as a string in Python?

在 Python 中捕获命令输出

问题: 执行 shell 命令并将其输出捕获为字符串,无论成功还是失败。

解决方案:

中现代版本的 Python(3.5 或更高版本),使用带有 stdout=subprocess.PIPE 标志的 subprocess.run 函数:

import subprocess

result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
output = result.stdout.decode('utf-8')
登录后复制

在旧版本的 Python (3-3.4) 中,使用 subprocess.check_output function:

import subprocess

output = subprocess.check_output(['ls', '-l'])
登录后复制

对于涉及命令输入或错误处理的更复杂的场景,请使用 subprocess.Popen 类与 communications方法:

import subprocess

p = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = p.communicate()
登录后复制

以上是如何在 Python 中将 shell 命令输出捕获为字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

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