利用python中的内建subprocess模块打开其他应用程序方法

1. 利用subprocess模块中的Popen()函数可以启动计算机中的其他程序(这里Popen中的P指代process,进程)。每个进程可以有多个线程,不像线程,进程之间是相互独立的,进程无法直接读写另一个进程的变量。利用subprocess.Popen('可执行文件绝对路径名')打开程序,需要注意的是:打开的程序和python程序不在同一个进程中运行。

2. Popen()函数返回Popen对象,其有两个有用的方法:poll()和wait()。poll()方法询问打开的程序进程是否终止运行,如果poll()调用时程序仍在运行,poll()方法返回None,如果程序已经终止,其返回程序进程的整数退出代码:无错终止(退出代码为0),错误导致终止(退出代码非0,通常为1,可能根据程序而不同)。
 wait()方法将阻塞python程序,直到打开的程序进程终止。wait()方法同样返回进程的整数退出代码。

3. 向Popen()传递命令行参数,用 Popen()创建进程时,可以向进程传递命令行参数:向 Popen()传递一个列表,作为唯一的参数。
该列表中的第一个字符串是要启动的程序的可执行文件名,所有后续的字符串将是该程序启动时,传递给该程序的命令行参数。
实际上,这个列表将作为被启动程序的 sys.argv 的值。(大多数 GUI 应用程序将接受一个参数, 表示应用程序启动时立即打开
的文件,例如下列语句:)

subprocess.Popen(['C:\\Windows\\notepad.exe', 'C:\\hello.txt'])


4. 用默认的应用程序打开文件:在 Windows操作系统上,执行 start 程序打开文件将以与文件扩展名关联的应用程序打开文件。例
    如下列语句将自动使用记事本程序打开纯文本文件:

subprocess.Popen(['start', 'hello.txt'], shell=True)

这里需要注意的是,windows操作系统需要shell=True关键字。

 

你可能感兴趣的:(学习笔记)