如何通过重写argpase.Action方法来实现以下命令。(覆盖__call__()
方法)
python program.py --delete --file filename
答案 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
类,但我认为您不需要在此处执行此操作。请记住,解析器的主要任务是解析,找出用户在命令行中想要的内容。它不是执行者。它不会对该信息采取行动。