在Python脚本中运行另一个程序的推荐方法

13 投票
2 回答
7382 浏览
提问于 2025-04-15 11:50

可能重复的问题:
如何在Python中调用外部命令

我正在Windows电脑上写一个Python脚本。我需要启动另一个应用程序“OtherApp.exe”。有什么合适的方法可以做到这一点呢?

到目前为止,我一直在考虑使用 os.system()os.execl(),但这两个方法看起来都不太合适(我甚至不知道后者在Windows上是否能用)。

2 个回答

-1

注意,这个回答是针对Python 2.x版本的,因为我在一个嵌入式系统上只能使用这个版本。我留下这个回答只是为了历史参考,以防万一。

subprocess模块提供了一个功能,可以捕获命令的输出,比如在Windows机器上使用[popen]。

import os
os.popen('dir').read()

这样做会得到

' C盘没有标签。\n 卷序列号是54CD-5392\n\n C:\Python25\Lib\site-packages\pythonwin目录\n\n[.] [..] dde.pyd license.txt\nPythonwin.exe [pywin] scintilla.dll tmp.txt\nwin32ui.pyd win32uiole.pyd \n 7个文件 984,178字节\n 3个目录 30,539,644,928字节可用\n'

然后你可以根据自己的需要对这些输出进行解析或处理。

5

推荐的做法是使用 subprocess模块。其他的方法,比如 os.system()exec,都不太可靠,安全性差,而且可能会有一些你不想碰的细微问题。subprocess模块可以替代这些方法。

撰写回答