覆盖argparse模块中的argparse.Action方法

时间:2015-12-21 15:47:19

标签: python argparse

如何通过重写argpase.Action方法来实现以下命令。(覆盖__call__()方法)

python program.py --delete --file filename

1 个答案:

答案 0 :(得分:0)

有了这个定义:

parser = argparse.ArgumentParser()
parser.add_argument('--delete', action='store_true')
parser.add_argument('--file') # default 'store' action

您的输入应该生成args,如下所示:

namespace(delete=True, file='filename')

您的代码可以使用布尔值args.delete和字符串args.file

argparse文档讨论了编写自定义Action类,但我认为您不需要在此处执行此操作。请记住,解析器的主要任务是解析,找出用户在命令行中想要的内容。它不是执行者。它不会对该信息采取行动。