【发布时间】:2015-12-19 17:21:59
【问题描述】:
我来 stackoverflow 已经有一段时间了,非常感谢这个令人难以置信的资源,因为它在无数场合都帮助了我,但这是我的第一个问题,所以请怜悯我 ;)
在使用“open”命令从命令行运行它时,我试图将命令行选项传递给我的 python 脚本。我知道我可以简单地使用 $ python myscript.py [arg1] [arg2] 但我真的想尽可能使用“打开”命令。
这是我的python脚本(myscript.py):
#!/usr/local/bin/python
import optparse
import sys
def main():
parser = optparse.OptionParser()
parser.add_option('--arg1', action="store", dest="arg1", type="int", default="0")
parser.add_option('--arg2', action="store", dest="arg2", type="int", default="0")
opts, remainder = parser.parse_args()
print "Options: ", str(opts)
print "Remainders: ", str(remainder)
print "Argv: ", sys.argv[:]
if __name__ == "__main__":
main()
这是我在终端中运行的命令:
$ open -a terminal myscript.py --args --arg1=5 --arg2=10
然后输出:
Options: {'arg1': 0, 'arg2': 0}
Remainders: []
Argv: ['/Users/test/Desktop/myscript.py']
所以脚本正在运行,但“--args”没有被传入,脚本只是使用参数的默认值! 以下是关于 open 命令的 --args 选项的文档:
--args All remaining arguments are passed in argv to the application's main() function instead of opened.
我已经尝试了各种方法来尝试让它工作,但我无法通过“open”将参数输入我的脚本。预先感谢您提供有关如何使其发挥作用的任何指导或建议。
【问题讨论】:
标签: python macos command-line terminal args