Python getopt 中的多字符命令解析

how*_*rks 5 python getopt command-line-arguments

我一直在使用 python getopt 进行解析,无论是短的还是长的,效果都很好。现在我需要在 getopt 函数中添加一些更多的短变量,如果我需要多个字符作为 getopt:short ,它看起来会更好。有没有办法做这样的事情。

getopt.getopt(argv,"hf:c:d:pv:pz:","")
Run Code Online (Sandbox Code Playgroud)

在这里,我需要将 pv 和 pz 作为单独的命令行参数来访问,而不是 getopt 将其读取为“无参数的 p”、“有一个参数的 v”。我在引号内尝试了“pv:”[pv:],但它识别了 pv,但不读取参数。

另外,(在不同的注释上)对于相同的参数是否可以有多个输入。请原谅我,如果这是一个非常简单的答案。

小智 2

根据我对文档和研究的理解,当我需要与你相同的东西时,我没有办法做到这一点。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)
Run Code Online (Sandbox Code Playgroud)

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

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