如何解决带有检查的Argparse自定义'store_true'操作
我想检查是否提供了action='store_true
个依赖脚本的参数。例如,
run.py --save_files --out_dir "saved_files" --files_to_save 10
如此一来,只要在没有run.py --save_files
或--out_dir
的情况下调用--files_to_save
,它就会失败并显示错误消息。
我正在尝试通过以下方式进行操作:
class CheckedStoreTrue(argparse._StoreTrueAction):
def __call__(self,parser,namespace,values,option_string=None):
if not namespace.out_dir:
parser.error("Please provide an output dir!")
if not namespace.files_to_save:
parser.error("Please provide a number of files to save!")
setattr(namespace,self.dest,values)
然后进入
prs.add_argument(
"--save_files",action=CheckedStoreTrue,required=False,help="Save files.",)
这不起作用,即使我提供了Please provide an output dir!
参数,它仍然会抛出out_dir
。如果我查看namespace
的内容,则会看到out_dir=None
。我想知道为什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。