Python中的多字符命令解析getopt

时间:2012-06-18 15:52:37

标签: python command-line-arguments getopt command-line-parsing

我一直在使用python getopt进行解析,包括short和long,它运行得很好。现在我需要在getopt函数中添加一些更短的变量,如果我需要将多个字符作为getopt:short,它会看起来更好。有没有办法做这样的事情。

getopt.getopt(argv,"hf:c:d:pv:pz:","")

在这里,我需要访问pv和pz作为单独的命令行参数,而不是getopt将其读作'p with no args','v with one args'。我在引号内尝试了'pv:'[pv:],但是它识别了pv,但没有阅读args。

另外,(在另一个注释中)可能有相同args的多个输入。请原谅我,如果你这是一个非常简单的答案。

1 个答案:

答案 0 :(得分:0)

基于我对文档和研究的理解,当我需要与您相同的东西时,没有办法做到。带有前缀“-”的shortopts仅可用于一个字符,对于多个字符,必须使用longopts,其使用前缀“-”。

python3中的示例:

import sys, getopt

try:
    opts, args = getopt.getopt(sys.argv[1:], 'c:d:', ['hf','pv','pz'])
except getopt.GetoptError as e:
    print(str(e))

for o, a in opts:
    print(o, ':', a)

不幸的是,我认为没有办法在longopts中加上必需的参数,但这可以通过手动检查来解决。

有关更多信息,我建议查阅文档: https://docs.python.org/3.1/library/getopt.html