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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-23 06:36:34612浏览

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