如何将argparse整合到带双参数的Python函数以支持命令行执行
如何用argparse让Python函数支持命令行调用
直接上完整的实现代码,完全匹配你的需求:
import argparse def function(arg1, arg2): print(arg1 * arg2) if __name__ == "__main__": # 创建参数解析器 parser = argparse.ArgumentParser(description='通过命令行调用指定函数') # 添加位置参数:函数名、arg1、arg2 parser.add_argument('func', help='要调用的函数名(当前仅支持function)') parser.add_argument('arg1', type=int, help='第一个整数参数') parser.add_argument('arg2', type=int, help='第二个整数参数') # 解析命令行输入的参数 args = parser.parse_args() # 根据传入的函数名执行对应逻辑 if args.func == 'function': function(args.arg1, args.arg2) else: print(f"错误:不支持的函数 '{args.func}'")
运行方式
在命令行输入:
python3 pythonscript.py function 4 5
输出结果为20,完全符合预期。
关键部分说明
if __name__ == "__main__"::这是Python脚本的标准入口,只有直接运行脚本时才会执行这部分代码,避免模块被导入时误触发命令行逻辑。- 参数定义:
func:用来指定要调用的函数名,这里我们只处理function,后续要加其他函数只需扩展判断逻辑即可。arg1和arg2:通过type=int指定参数类型为整数(适配乘法需求),如果你的函数需要字符串或其他类型,去掉type=int即可(默认是字符串类型)。
- 函数调用:解析完参数后,通过判断
args.func的值,调用对应的函数并传入解析后的参数。
扩展支持多函数
如果后续需要添加更多函数,比如加法,只需新增函数并扩展判断逻辑:
import argparse def function(arg1, arg2): print(arg1 * arg2) def add(arg1, arg2): print(arg1 + arg2) if __name__ == "__main__": parser = argparse.ArgumentParser(description='通过命令行调用指定函数') parser.add_argument('func', help='要调用的函数名(支持function、add)') parser.add_argument('arg1', type=int, help='第一个整数参数') parser.add_argument('arg2', type=int, help='第二个整数参数') args = parser.parse_args() if args.func == 'function': function(args.arg1, args.arg2) elif args.func == 'add': add(args.arg1, args.arg2) else: print(f"错误:不支持的函数 '{args.func}'")
现在可以调用加法函数:
python3 pythonscript.py add 4 5
输出9。
内容的提问来源于stack exchange,提问作者NicoMane
相关产品推荐
相关产品推荐

