我怎么能默认没有指向一个路径名的argparse?
问题描述:
目前,我使用输出以下文件:我怎么能默认没有指向一个路径名的argparse?
import argparse
....
parser = argparse.ArgumentParser(description='do cool stuff')
parser.add_argument('--output_text_file',
default="outputs/output_file1.txt",
help='file path for the output text file')
这已经是一个可选参数。但是,我希望默认选项为do not output anything
。如果用户想要文件输出,他们可以用上面的路径名称调用参数,例如`--output_text_file“outputs/my_text.txt”
通常情况下,正确的做法是什么?
我怀疑,如果我使用:
default=""
上面会有一个错误。
答
很简单,只是省略了默认:
parser.add_argument('--output-text-file')
在指定参数时,检查是否output_text_file is None
。 该名称将始终存在。
答
您可以将您的默认设置为os.devnull,它相当于一个空设备
parser.add_argument('--output_text_file',
default=os.devnull,
help='file path for the output text file')
+0
这是第三方软件,所以做这个假设有点困难 – ShanZhengYang
+0
'os.devnull'是找到'/ dev/null'的正确方法。 – wim
>在args来的文件路径的跨平台的价值,检查output_text_file是否为无。这个名字将永远存在。 你的意思是,在包中脚本的顶部定义这个变量?我可能不会完全关注你 – ShanZhengYang
它只是意味着在你产生输出的代码部分,放置一个条件分支来检查'如果args.output_text_file不是None:'first。 – wim
我明白了,谢谢 – ShanZhengYang