求Python 3.6环境下启动进程并获取输出及返回码的实现代码
Python 3.6 适配:启动进程并获取输出及返回码
Python 3.6 里的 subprocess.run() 还未支持 capture_output 和 text 参数,需要用以下方式替代适配:
- 替代
capture_output=True:手动指定stdout=subprocess.PIPE和stderr=subprocess.PIPE,以此捕获标准输出和错误输出 - 替代
text=True:使用universal_newlines=True,这是该参数在 Python 3.6 及更早版本中的等价写法
适配后的完整代码如下:
import subprocess # 注意:原代码中的['ll']是bash别名,直接调用会报错,换成['ls', '-l']实现相同功能 process = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) return_code = process.returncode # 可分别获取标准输出和错误输出 stdout_content = process.stdout stderr_content = process.stderr
内容的提问来源于stack exchange,提问作者Dana Yeger
相关产品推荐
相关产品推荐

