【发布时间】:2014-06-12 23:55:21
【问题描述】:
我能够使用非常简单的语法启动应用程序。示例
app="/Applications/MyApp/myAppExecutable"
file="/Users/userName/Pictures/myPicture.jpg"
cmd="open -a '%s' '%s'" % (app, file)
os.system(cmd)
结果cmd这里是:
open -a '/Applications/MyApp/myAppExecutable' '/Users/userName/Pictures/myPicture.jpg'
它运行得很好。
但是我正在运行的应用程序接受一个可选的启动参数-proj filepath,所以带有这个可选参数的完整的cmd 字符串应该如下所示:
open -a '/Applications/MyApp/myAppExecutable' -proj '/Users/userName/Pictures' '/Users/userName/Pictures/myPicture.jpg'
但是,如果我用这样的 cmdstring 输入 os.system(),我会得到:
open: invalid option -- p
如何传递可选的应用参数而不导致错误和崩溃?
【问题讨论】:
-
该语法在命令行中有效吗?看起来更像是
open问题而不是 Python 问题。 -
如果你在命令行运行它,它工作吗?
-
这是
open问题,不是 Python 问题。尝试在应用程序路径及其参数之间传递--。如果一切都失败了,你也可以在没有open的情况下简单地启动它,你只需要执行/Applications/MyApp/myAppExecutable/Contents/MacOS/myAppExecutable。