能否在argparse中使用‘+’替代‘-’作为部分命令行选项前缀?
用argparse实现带‘+’前缀的命令行选项
当然可以实现!argparse原生支持自定义命令行选项的前缀字符,你只需要在初始化ArgumentParser对象时,通过prefix_chars参数指定允许的前缀(比如同时包含-和+),就能轻松实现需求。
具体实现步骤
初始化带自定义前缀的解析器
创建ArgumentParser时,把prefix_chars设置为'-+',这样argparse就会同时识别-和+开头的选项:import argparse parser = argparse.ArgumentParser(prefix_chars='-+')添加带‘+’前缀的选项
直接用+作为前缀来定义选项,比如你需要的+opt:# 添加+opt选项,action='store_true'表示只要出现该选项就设为True parser.add_argument('+opt', action='store_true', help='带加号前缀的开关选项') # 保留原有的-开头选项 parser.add_argument('-f', '--filename', help='指定文件名')解析并使用参数
正常解析命令行参数,访问属性时会自动去掉前缀,比如+opt对应的属性是args.opt:args = parser.parse_args() print(f"+opt 是否被启用: {args.opt}") if args.filename: print(f"指定的文件名: {args.filename}")
测试效果
执行命令:
python script.py +opt -f test.txt
输出结果:
+opt 是否被启用: True 指定的文件名: test.txt
额外注意事项
prefix_chars可以支持多个任意字符,比如你还可以添加/等,但通常-和+完全满足需求- 如果需要长格式的
+选项,比如+option,直接按同样方式定义即可:parser.add_argument('+option', action='store_true') - 不同前缀的选项可以共存,互不影响,完全兼容你原来的
-开头选项
内容的提问来源于stack exchange,提问作者user2756376
相关产品推荐
相关产品推荐

