如何使用argparse实现func1/func2带可选参数的命令行调用格式
实现方案
用argparse的子命令功能即可完美匹配你需要的命令行格式,完整实现步骤和代码如下:
1. 核心逻辑说明
- 给
argparse添加子命令解析器,func1和func2分别作为两个子命令 - 给
func2单独添加可选参数,func1不需要额外参数的话可以不用配置 - 解析参数后判断选中的子命令,调用对应函数并传入参数即可
2. 完整代码示例
import argparse # 你内部定义的两个业务函数 def func1(): print("执行func1逻辑,无参数传入") def func2(optional_arg=None): print(f"执行func2逻辑,传入的可选参数为:{optional_arg}") if __name__ == "__main__": # 初始化顶级解析器 parser = argparse.ArgumentParser(description="调用内部函数的命令行工具") # 添加子命令解析器,required=True表示必须选一个子命令 subparsers = parser.add_subparsers(dest="command", required=True) # 添加func1子命令,无额外参数 subparsers.add_parser("func1", help="执行func1函数") # 添加func2子命令,配置可选参数 parser_func2 = subparsers.add_parser("func2", help="执行func2函数") parser_func2.add_argument("optional_argument", nargs="?", help="func2的可选参数,可省略") # 解析命令行参数 args = parser.parse_args() # 按选中的子命令调用对应函数 if args.command == "func1": func1() elif args.command == "func2": func2(args.optional_argument)
3. 命令行调用测试
- 调用func1:
python file.py func1 - 调用func2不带参数:
python file.py func2 - 调用func2带参数:
python file.py func2 测试参数 - 查看帮助说明:
python file.py -h或者python file.py func2 -h
内容的提问来源于stack exchange,提问作者Engr Ahsan Inam
相关产品推荐
相关产品推荐

