1

我对 argparse 没有什么困难,如果有人能就以下两个问题提出建议,我将不胜感激:

1) 我的脚本需要几个命令行参数,其中之一是 --color。我希望 argparse 强制执行以下语法:--color=True 并且不容忍以下语法:--color True。

parser = argparse.ArgumentParser()
parser.add_argument('--color', nargs=1, default=True)

2)我正在使用的另一个选项是 -i

parser.add_argument('-i','--ignorecase', action='store_true')
args = parser.parse_args()

取决于 True 或 False,re.compile 将使用 flags=re.IGNORECASE 或 flags=0

if (args.ignorecase == True):

   CASE_SENSITIVITY=re.IGNORECASE
else:

   CASE_SENSITIVITY=0

pattern = re.compile('my_pattern', flags=CASE_SENSITIVITY)

有没有更简单的方法将值分配给 CASE_SENSITIVITY ?也许在 parser.add_argument 里面,这样我就可以避免多个步骤,if else 等等?

4

1 回答 1

1

您始终可以使用三元运算符,例如:

CASE_SENSITIVITY = 0 if not args.ignorecase else re.IGNORECASE
于 2013-01-29T23:18:11.930 回答