是否可以不区分大小写的方式检查argparse choices

import argparse
choices = ["win64", "win32"]
parser = argparse.ArgumentParser()
parser.add_argument("-p", choices=choices)
print(parser.parse_args(["-p", "Win32"]))

结果是:
usage: choices.py [-h] [-p {win64,win32}]
choices.py: error: argument -p: invalid choice: 'Win32' (choose from 'win64','win32')

最佳答案

通过使用将参数转换为小写

type = str.lower

用于-p开关。

此解决方案由chepnercomment中指出。我之前提出的解决方案是
type = lambda s : s.lower()

这也是有效的,但仅使用str.lower更为简单。

关于python - 不区分大小写的argparse选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27616778/

10-11 02:44