Python学习笔记之argparse

一、argparse基本用法

argparse 模块是 Python 内置的一个用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口。

使用argparse常分为三步:

  • 创建一个解析器——创建 ArgumentParser() 对象
  • 添加参数——调用 add_argument() 方法添加参数
  • 解析参数——使用 parse_args() 解析添加的参数

基本用法的示例如下:

import argparse

def main():
    parser = argparse.ArgumentParser(description="Demo of argparse")
    parser.add_argument('-n', '--name', type=str, default='Li', help="Your name!")
    parser.add_argument('--year', type=int, default=2022)
    parser.add_argument('--action', action="store_true") # 命令行输入--action 则action 为真

	args = parser.parse_args()
	print(args)
	name = args.name
	year = args.year
	print('HelloWorld {}  {}'.format(name, year))
	if args.action:
		print("Action is true!")
	else:
		print("Action is false!")

if __name__ == '__main__':
    main()
  • 输入[-h] 显示帮助文档
    在这里插入图片描述

  • 使用默认值时的结果
    在这里插入图片描述

  • 使用命令行修改参数时的结果
    action设置为’store_true’,默认是false;当命令行输入了"–action"是为真。
    在这里插入图片描述

二、argparse的子命令用法add_subparsers()

当程序中有多个函数,且想要用命令行控制只运行其中某一个时,可以使用add_subparsers()方法。

示例如下:

import argparse

def fun1(args):
    print(f"Output: {args.x1 + args.y1}")

def fun2(args):
    print(f"Output: {args.x2 + args.y2}")

def main():
    parser = argparse.ArgumentParser(description="Demo of argparse")
    subparsers = parser.add_subparsers(dest="command")

    subparsers_1 = subparsers.add_parser('fun1', help="Use fun1!")  # #添加子命令 fun1
    subparsers_1.add_argument('--x1', type=float, default=1.0)
    subparsers_1.add_argument('--y1', type=float, default=2.0)
    subparsers_1.set_defaults(func=fun1)  # 设置默认函数

    subparsers_2 = subparsers.add_parser('fun2', help="Use fun2!")
    subparsers_2.add_argument('--x2', type=float, default=3.0)
    subparsers_2.add_argument('--y2', type=float, default=4.0)
    subparsers_2.set_defaults(func=fun2)

    args = parser.parse_args()
    print("Running command {}".format(args.command))
    args.func(args)

if __name__ == '__main__':
    main()
  • 然后想控制运行函数fun1时,命令行输入:python xxx.py [子命令/函数名字] [--xxx xxx/输入参数]
    在这里插入图片描述

参考文章

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值