subprocess.run详解
时间: 2023-11-25 15:39:00 浏览: 206
subprocess.run()
是 Python 的一个内置函数,用于在子进程中运行外部命令。
该函数的基本语法是:
subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, text=None, encoding=None, errors=None, env=None, universal_newlines=None)
参数说明:
args
:要执行的命令,可以是字符串或者字符串列表,如果是字符串,则会通过 shell 执行。stdin
:子进程的标准输入,默认为None
。可以使用subprocess.PIPE
来创建一个管道连接到子进程的标准输入。input
:要传输给子进程的输入,默认为None
。可以是字符串或字节流。stdout
:子进程的标准输出,默认为None
。可以使用subprocess.PIPE
来创建一个管道连接到子进程的标准输出。stderr
:子进程的标准错误,默认为None
。可以使用subprocess.PIPE
来创建一个管道连接到子进程的标准错误。capture_output
:如果设置为True
,则将子进程的标准输出和标准错误都捕获到返回值的stdout
和stderr
属性中,默认为False
。shell
:如果设置为True
,则将命令通过 shell 执行,默认为False
。cwd
:设置子进程的当前工作目录。timeout
:设置子进程的超时时间,超过该时间子进程会被终止。check
:如果设置为True
,则在子进程返回非零退出代码时会抛出CalledProcessError
异常,默认为False
。text
:如果设置为True
,则将子进程的输出解码为文本,默认为None
。encoding
:设置解码子进程输出的编码格式。errors
:设置解码子进程输出时的错误处理方式。env
:设置子进程的环境变量。universal_newlines
:如果设置为True
,则将子进程的输出解码为文本,并且换行符会被转换为\n
。
subprocess.run()
函数会返回一个 CompletedProcess
对象,其中包含了子进程的执行结果和输出信息。
注意:在使用 subprocess.run()
函数时,要注意输入的命令是否安全,以避免安全漏洞。应该避免将用户提供的输入直接传递给 subprocess.run()
函数,尤其是在使用 shell=True
的情况下。
阅读全文
相关推荐

















