python subprocess 子进程执行系统命令

使用 python 的 subprocess 模块执行系统命令时,建议按下面的方式使用 run,而不使用 check_output

check_output 获取错误输出 stderr 的时候会有问题。无法获取错误输出。使用 run 时,可以根据 renturncode 来判断进程结束的状态。

import subprocess

p = subprocess.run(args, stdout = subprocess.PIPE, stderr=subprocess.PIPE)
out = p.stdout.decode('utf-8')
error = p.stderr.decode('utf-8')
return_code = p.returncode

其中参数 args 建议使用列表,列表的第一个元素是要执行的命令,之后的元素是命令的参数。例如,args=['ls', '-l']

posted @ 2021-02-03 16:36  TheTai  阅读(142)  评论(0编辑  收藏  举报