常量
subprocess.DEVNULL:可传递给 stdin
, stdout
, stderr
参数的特殊值,意味着将使用特殊文件 os.devnull
重定向输入输出
subprocess.PIPE:可传递给 stdin
, stdout
, stderr
参数的特殊值,意味着使用管道重定向输入输出
subprocess.STDOUT:可传递给 stderr
参数的特殊值,表示重定向标准错误到标准输出
Popen
在一个新的进程中执行子程序。
构造参数
(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=None, startupinfo=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=(), *, encoding=None, errors=None, text=None)
args: 字符串或序列。如果是序列,则args中的第一个元素是要执行的程序;如果是字符串,解释执行与平台有关,在POSIX系统args将被解释为要执行的程序的名称或路径(前提是不传递任何参数给程序)。
shell: 指定是否使用shell作为要执行的程序。如果设置为True,更推荐和字符串类型的args参数使用。
在POSIX系统,shell=True默认使用 /bin/sh
作为shell。如果args为字符串,该字符串表示要通过shell执行的命令;如果args为序列,第一个元素指定要执行的程序,其他元素视为参数。
在Windows系统,shell=True默认使用 COMSPEC
环境变量指定的sh