Python如何在argparse中传递多个布尔标志并做条件判断
命令行布尔标志的判断与逻辑实现
你只需要完成参数解析流程,之后通过解析得到的参数对象直接判断--anime标志是否被传入即可,完整实现代码如下:
import argparse # 创建参数解析器实例 parser = argparse.ArgumentParser() # 添加所有布尔标志参数 parser.add_argument('--naruto', action='store_true') parser.add_argument('--transformers', action='store_true') parser.add_argument('--goku', action='store_true') parser.add_argument('--anime', action='store_true') # 解析命令行传入的参数 args = parser.parse_args() # 根据--anime标志执行不同逻辑 if args.anime: # 传入--anime时的执行逻辑 print("触发动漫专属逻辑") # 可结合其他标志做组合判断 if args.goku: print("同时开启goku和anime标志,执行组合逻辑") else: # 未传入--anime时的执行逻辑 print("执行常规逻辑")
关键说明
- 调用
parser.parse_args()后,会生成一个参数对象args,你添加的每个标志都会成为该对象的属性。 - 对于
action='store_true'的参数,未传入时属性值为False,传入时为True,直接通过args.anime的布尔值就能完成判断。 - 如果需要多标志组合判断,直接在条件里叠加其他属性(比如
args.goku)即可。
内容的提问来源于stack exchange,提问作者qabootar
相关产品推荐
相关产品推荐

