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

13

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

我正在Windows机器上编写Python脚本。 我需要启动另一个应用程序“OtherApp.exe”。 最适合执行此操作的方式是什么?

到目前为止,我一直在查看os.system()os.execl(),它们似乎不太合适(我甚至不知道后者是否在Windows上工作)。


如何在Python中调用外部命令 - David Webb
抱歉重复了,希望我能关闭它。不过我已经投票了。 - Frederick The Fool
2个回答

5
推荐的方法是使用 subprocess 模块。所有其他方法(例如 os.system()exec)都很脆弱、不安全,并且具有细微的副作用,您不需要关心。subprocess 取代了它们所有。

-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'

然后可以按照您想要的任何方式进行解析或操作。


subprocess 模块已经在较新版本的 Python 中取代了 os.popen。这是处理此问题的推荐方法。http://docs.python.org/library/subprocess.html - Corey Goldberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接