28-用默认的应用程序打开文件
17.8.5 用默认的应用程序打开文件
双击计算机上的.txt文件,会自动启动与.txt文件扩展名关联的应用程序。计算机上已经设置了一些这样的文件扩展名关联。利用 Popen()
,Python也可以用这种方式打开文件。
每个操作系统都有一个程序,其行为等价于双击文档文件来打开它。在Windows操作系统上,这是 start
程序。在macOS上,这是 open
程序。在Ubuntu Linux操作系统上,这是 see
程序。在交互式环境中输入以下代码,根据操作系统,向 Popen()
传入 'start'
、 'open'
或 'see'
:
>>> fileObj = open('hello.txt', 'w')
>>> fileObj.write('Hello, world!')
12
>>> fileObj.close()
>>> import subprocess
>>> subprocess.Popen(['start', 'hello.txt'], shell=True)
这里,我们将 Hello, world!
写入一个新的hello.txt文件。然后调用 Popen()
,以传入一个列表,其中包含程序名称(在这个例子中,是Windows操作系统上的 'start'
)以及文件名。我们也传入了 shell=True
关键字参数,这只在Windows操作系统上需要。操作系统知道所有的文件关联,能弄清楚应该启动哪个程序,例如Notepad.exe,用来处理hello.txt文件。
在macOS上, open
程序用于打开文档文件和程序。如果你使用macOS,在交互式环境中输入以下代码:
>>> subprocess.Popen(['open', '/Applications/Calculator.app/'])
<subprocess.Popen object at 0x10202ff98>
计算器应用程序应该会打开。