4

我一直在使用 python getopt 进行短期和长期的解析,效果很好。现在我需要在 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。

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

4

1 回答 1

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)

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

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

于 2019-09-30T20:57:44.127 回答