import argparse
# 定义一个argparse
parser = argparse.ArgumentParser(description="argparse的基本用法")
# 定义positional参数,username,str类型
parser.add_argument("username", type=str, help="用户名参数")
# 定义positional参数,gender,str类型,但是输入只能是m/f,否则报错
parser.add_argument("gender", type=str, choices=['m', 'f'], help="性别参数")
# 定义optional参数,age,int类型,默认值为0(有的参数最好得设置默认值,否则报错!)
parser.add_argument("-a", "--age", type=int, default=0, help="年龄参数")
# 定义optional 参数,action="store_true"的意思是,命令行使用了--f/--flag,则这个参数值为True,否则为False
parser.add_argument("-f", "--flag", action="store_true", help="控制是否打印信息")
# 对这些参数进行了parse,这样就可以使用args.x,来获取参数x的值
args = parser.parse_args()
if args.flag:
print("用户名:{}\t性别:{}\t年龄:{}".format(args.username, args.gender, args.age))
else:
# 如果之前的age不设置默认值,命令行中没有指定age的值,则为None,这里报错!
if args.age >= 18:
print("年龄大于18!年龄为{}".format(args.age))
else:
print("年龄小于18,不打印信息!")
python parseTest.py -h
指定-a
这里不能指定flag的值
其他的自己换换输入,改改代码试试看吧~~
参考资料:argparser模块学习
网友评论