如果可能的话,我想对一个命令使用以下结构,但是我似乎不知道如何在Python中实现这一点:
./somescript.py arg <optional argument> -- "some long argument"
有没有可能在没有太多脏代码的情况下以一种可行的方式实现这一点?或者我应该重新考虑语法(这主要是偏好)。
谢谢!
发布于 2010-06-17 09:26:07
我认为optparse可以做到。
发布于 2010-06-17 10:15:25
如果你不想在你的arg和optional_argument前面使用破折号,这对于典型的Unix命令行行为来说有点奇怪,但是我不明白为什么每个答案似乎都认为你必须使用破折号。实际上,避免他们是一种琐碎的事情...:
import sys
def before_and_after_doubledashes(args=sys.argv):
where_doubledashes = args.index('--') if '--' in args else len(args)
return args[:where_doubledashes], args[where_doubledashes+1:]这完全忽略args是否以破折号开头,只会挑出第一次出现的arg,如果有的话,它会返回一个包含两个列表的元组,一个是在这个双破折号之前的所有args (如果有),另一个是它之后的所有args (如果没有双破折号参数,则为空)。您可以从呼叫中分配以下列表:
before, after = before_and_after_doubledashes()然后按照你的意愿对待它们(检查它们的长度,从它们的一部分中分配变量,等等)。
发布于 2010-06-17 07:19:07
您只需要在第一行粘贴如下内容:#/usr/local/bin/python
只需将您的python二进制文件放在任何位置即可。
至于args,请查看getopt或optparser
记得chmod你的文件,使它可执行。
https://stackoverflow.com/questions/3057805
复制相似问题