我一直在使用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的多个输入。请原谅我,如果你这是一个非常简单的答案。
答案 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