我正在使用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
答案 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")