使用Python在Mac上的应用程序上打开时,如何提供其他参数?

时间:2014-05-16 13:53:57

标签: python macos osx-mavericks

我正在使用Flightgear,我想要一种从特定飞机的Python脚本启动/Applications/FlightGear.app的方法,但它不接受额外的参数

这有效:

os.system("open /Applications/FlightGear.app/Contents/MacOS/fgfs")

这样做,但没有选择飞机......我已经在飞机前面尝试过带有和不带连字符的装置。

os.system("open /Applications/FlightGear.app/Contents/MacOS/fgfs --args aircraft=777-200ER")

供参考,

pic http://wiki.flightgear.org/images/thumb/1/15/FGSignMaker_tut1.png/400px-FGSignMaker_tut1.png

2 个答案:

答案 0 :(得分:2)

像这样的东西。有时一些论据必须结合起来,这取决于它们之间的关系。

import subprocess
p = subprocess.Popen(['open', '/Applications/FlightGear.app/Contents/MacOS/fgfs', '--args', 'aircraft=777-200ER'])
if p.wait() != 0:
  raise EnvironmentError()

这是基本信息,只需通过搜索" python run命令"在谷歌。因此,它不仅仅是懒惰的工具。

答案 1 :(得分:0)

在OS X上,open是运行应用程序。要运行一个命令行程序,就像在unix / linux上一样,假设/Applications/FlightGear.app/Contents/MacOS/fgfs实际上是一个可运行的程序。

我无法针对这种特殊情况对其进行测试,但我认为您希望os.system()能够完全按照您在命令行提示符处输入的内容运行。因此,

os.system("/Applications/FlightGear.app/Contents/MacOS/fgfs --aircraft=777-200ER")