Python 如何根据参数的存在更改argparse选项操作与类型行为?
我正在尝试为Python脚本的CLI实现以下行为:Python 如何根据参数的存在更改argparse选项操作与类型行为?,python,argparse,Python,Argparse,我正在尝试为Python脚本的CLI实现以下行为: 如果-o选项不存在,则脚本不会写入文件 如果-o选项不带参数,脚本将写入默认文件名 如果-o选项带有参数,脚本将写入用户提供的文件名 是否可以通过argparse实现这一点?以下是我在构建解析器时尝试的内容: parser.add_argument('-o', '--output', action='store_true', type=str, default=False, required=False, help="...") 我了解到
- 如果
选项不存在,则脚本不会写入文件-o
- 如果
选项不带参数,脚本将写入默认文件名-o
- 如果
选项带有参数,脚本将写入用户提供的文件名-o
argparse
实现这一点?以下是我在构建解析器时尝试的内容:
parser.add_argument('-o', '--output', action='store_true', type=str, default=False, required=False, help="...")
我了解到这是可能的,但您需要使用
const
和nargs
选项
parser.add_argument('-o', '--output', const='default.txt', nargs='?', type=str, default=False, required=False, help="...")
阅读更多信息:Nice:我不知道除了
store\u const
或append\u const
操作之外,还使用了const
。
parser.add_argument('-o', '--output', const='default.txt', nargs='?', type=str, default=False, required=False, help="...")