在Python脚本中运行另一个程序的推荐方法
可能重复的问题:
如何在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模块可以替代这些方法。