问题: 执行 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中文网其他相关文章!