我正在Windows机器上编写Python脚本。我需要启动另一个应用程序“OtherApp.exe”。最合适的方法是什么?
直到现在我一直在关注os.system()
或os.execl()
并且它们看起来不合适(我甚至不知道后者是否会在Windows中运行)。
答案 0 :(得分:4)
推荐的方法是使用subprocess module。所有其他方式(如os.system()
或exec
)都是脆弱的,不安全的,并且具有您不应该关心的微妙副作用。 subprocess替换所有这些。
答案 1 :(得分:-2)
子进程提供的一个方法是捕获命令输出的方法,例如在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 Dir(s)30,539,644,928字节免费\ n'
然后可以以任何方式解析或操纵它。