argparse
模块是Python内置的参数解析模块,相较于传统的 sys.argv 来说,其功能更加的强大,操作也更灵活。
ArgumentParser
类创建时的参数如下:
- prog - 程序的名字(默认:sys.argv[0])
- usage - 描述程序用法的字符串(默认:从解析器的参数生成)
- description - 参数帮助信息之前的文本(默认:空)
- epilog - 参数帮助信息之后的文本(默认:空)
- parents - ArgumentParser 对象的一个列表,这些对象的参数应该包括进去
- formatter_class - 定制化帮助信息的类
- prefix_chars - 可选参数的前缀字符集(默认:‘-‘)
- fromfile_prefix_chars - 额外的参数应该读取的文件的前缀字符集(默认:None)
- argument_default - 参数的全局默认值(默认:None)
- conflict_handler - 解决冲突的可选参数的策略(通常没有必要)
- add_help - 给解析器添加-h/–help 选项(默认:True)
add_argument
函数的参数如下:
- name or flags - 选项字符串的名字或者列表,例如foo 或者-f, –foo。
- action - 在命令行遇到该参数时采取的基本动作类型。
- nargs - 应该读取的命令行参数数目。
- const - 某些action和nargs选项要求的常数值。
- default - 如果命令行中没有出现该参数时的默认值。
- type - 命令行参数应该被转换成的类型。
- choices - 参数可允许的值的一个容器。
- required - 该命令行选项是否可以省略(只针对可选参数)。
- help - 参数的简短描述。
- metavar - 参数在帮助信息中的名字。
- dest - 给parse_args()返回的对象要添加的属性名称。
1.定位参数的使用
import argparse
#创建 ArgumentParser的工程
parser = argparse.ArgumentParser()
#添加argument
parser.add_argument('integer', type=int, help='display an integer')
#解析参数
args = parser.parse_args()
print (args.integer)
1.1首先打开win下的CMD ,进入到 untitled0.py 的文件夹
1.2 输入python +untitled0.py(文件名)+4(参数的值)
1.3 回车运行 .py文件
注意程序中设置的type类型是int ,所以给定参数的值也需要是int 类型,否则程序会报错
2.可选参数的使用
参数可选就是在使用.py文件时,需要指定参数名称并给出相应的值
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--square", help="display a square of a given number", type=int)
parser.add_argument("--cubic", help="display a cubic of a given number", type=int)
args = parser.parse_args()
if args.square:
print(args.square**2)
if args.cubic:
print(args.cubic**3)
和定位参数的使用一致,注意给定参数的类型,否则程序会报错
2.1首先打开win下的CMD ,进入到 untitled0.py 的文件夹
2.2输入 python .\untitled0.py --square 2 --cubic 3
2.3 回车运行 .py文件
运行结果如下:3 其他说明
import argparse
# Create ArgumentParser() object
parser = argparse.ArgumentParser()
# Add argument
parser.add_argument('--train', required=True, help='path to dataset')
parser.add_argument('--val', required=True, help='path to dataset')
parser.add_argument('--total', type=int, help='number of dataset', default=100)
parser.add_argument('--lr', type=float, default=0.01, help='learning rate')
# Print usage
parser.print_help()
# Parse argument
args = parser.parse_args()
# Print args
print(args)
print(args.train)
print(type(args.train))
print(args.val)
print(type(args.val))
print(args.total)
print(type(args.total))
print(args.lr)
print(type(args.lr))
3.1输入 python .\untitled0.py -h 可以查看argument中的帮助信息
结果如下:
argument 中default 参数代表 参数的默认值,当没有该输入的参数时,就以默认值作为输入,如argument中没有default参数,程序运行时一定要对给定的参数进行赋值。
3.2进入文件目录下 输入 python .\untitled0.py --train train_lmdb --val val_lmdb
运行结果如下: