subprocess.Popen() 是一个非常有用的 Python 模块,它可以在当前进程内或者在子进程中运行系统命令,并能够查看返回结果。它的一般语法如下:
subprocess.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=False, startupinfo=None,creationflags=0)
下面是这些参数的含义:
- args:要执行的命令及其参数,可以是字符串或序列,如果是序列,第一个元素通常是要执行的命令,后续元素是命令参数。
- bufsize:缓冲区大小,对于标准 IO 通道,这个值默认为 -1,表示使用系统默认值。
- executable:指定要使用的可执行文件,通常是 shell 程序。
- stdin, stdout, stderr:表示标准输入、输出和错误的管道,可以是文件描述符或者一个文件对象。
- preexec_fn:在子进程启动前执行的函数。
- close_fds:是否关闭所有父进程打开的文件描述符,默认为 True。
- shell:如果设置为 True,则将 args 参数作为一个字符串传递给 shell 进行解析,默认为 False。
- cwd:在执行命令之前改变当前工作目录。
- env:指定环境变量,可以是一个字典或者 None。
- universal_newlines:如果设置为 True,则将输入和输出转换为文本模式,默认为 False 也就是二进制流模式。
- startupinfo:指定一些 Windows 特定的属性,例如窗口大小、标准输入模式等等。
- creationflags:可以用来控制子进程的创建方式,例如是否使用 CREATE_NEW_CONSOLE 来创建控制台窗口。