概述
一、模块简介
argparse是一个Python中的一个常用模块,和sys.argv()功能类似,主要用于编写命令行接口:对于程序所需要的参数,它可以进行正确的解析。此外,argparse可以自动的生成help(帮助)和usage(用法)信息,当程序的参数无效时,可以自动生成错误信息。
import argparse
二、argparse三个主要函数
1.parser = argparse.ArgumentParser()
ArgumentParser对象保存了所有必要的信息,用于将命令行参数解析为相应的python数据类型。
ArgumentParser对象 :
class argparse.ArgumentParser
(prog=None, #程序文件名,defaulf:sys.argv[0]
usage=None, #用法-程序使用说明,defaulf:从添加到解析器的参数生成
description=None, #描述-程序目的说明,在参数之前显示的文本;default:None
epilog=None, #结语-程序说明后记,参数help后显示的文本;default:None
parents=[], #父类-ArgumentParser对象的列表,其他参数也应该包括在内;default:[]
formatter_class=argparse.HelpFormatter, #格式的类-用于自定义帮助输出的类help信息的说明格式
prefix_chars='-', #前缀字符-命令函参数的前缀;defaulf:‘-’
fromfile_prefix_chars=None, #来自文件的前缀字符-应该读取其他参数的前缀文件的字符集;default:None
argument_default=None, #参数默认-参数的全局默认值;default:None
conflict_handler='error', #冲突处理-解决冲突选项的策略,通常时不必要的;default:‘erroe’
add_help=True, #增加帮助-是否增加help选项;default:True
allow_abbrev=True) #允许使用缩写-是否使用参数的缩写;default:True
parser = argparse.ArgumentParser(description='Process some integers')
2.parser.add_argument()
调用add_argument()向ArgumentParser对象添加命令行参数信息,这些信息告诉ArgumentParser对象如何处理命令行参数。可以通过调用parse_agrs()来使用这些命令行参数,将会返回一个对象。
ArgumentParser.add_argument
(name, or flags, #参数名或者参数标识;带 - 的为可选参数(optional parameter);不带 - 的为必选参数(positional # parametrer)
action, #参数的处理方法,在命令行遇到此参数时要采取的基本操作类型
nargs, #参数的数量,应该使用的命令行参数的数量
const, #参数的常量值,某些动作和选择所需的常量值
default, #参数的默认值,如果命令行中不存在的参数,则生成的值
type, #参数的数据类型,应转换命令行参数类型
choices, #参数的取值范围,参数允许值的范围
requires, #参数是否可以忽略不写,进队可选参数有效,
help, #参数的说明信息,简单描述参数的作用
metavar, #参数在说明信息usage(用法)中的名称,用法消息中的名称
dest, #对象的属性名,要添加到返回值的对象的属性的名称。
)
parser.add_argument('--learning_rate', type=float, default='0.001', help='initial learning rate [default:0.001]')
3.args = parser.parse_args()
通过条用parse_args()来解析ArgumentParser对象中保存的命令行参数:将命令行参数解析成相应的数据类型并采取相应的动作,他返回一个Namespace对象。
ArgumentParser.parse_args(args=None, namespace=None)
args:字符串列表,默认来自sys.argv
namespace:对象名,默认是一个空的Namespace对象
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('learning_rate', type=float, default='0.001', help='initial learning rate [default : 0.001]')
args = parser.parse_args().learning_rate
print(args)
运行结果:
0.001
三、使用一个例子来说明
1.使用IDE来运行
#这个是使用带有默认值的,可以在Pycharm等IDE中直接运行
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--GPU', type=int, default=0, help='GPU to use[default : GPU 0]')
parser.add_argument('--model', default='pointnet_cls', help='Model name:pointnet_cls or pointnet_cls_basic[default: pointnet_cls]')
parser.add_argument('--log_dir', default='log', help='log dir[default: log]')
parser.add_argument('--num_point', type=int, default='1024', help='point number[256/512/1024/2048] [default: 1024]')
parser.add_argument('--max_epoch', type=int, default='250', help='epoch to run[default: 250]')
parser.add_argument('--batch_size', type=int, default='32', help='batch size during training[default: 32]')
parser.add_argument('--learning_rate', type=float, default='0.001', help='initial learning rate [default:0.001]')
parser.add_argument('--momentum', type=float, default='0.9', help='initial learning rate [default: 0.9]')
parser.add_argument('--optimizer', default='adam', help='adam or momentum [default:adam]')
parser.add_argument('--decay_step', type=int, default='200000', help='decay step for lr decay [default:200000]')
parser.add_argument('--decay_rate', type=float, default='0.7', help='decay rate for lr decay[default:0.7]')
flags = parser.parse_args()
GPU_index = flags.GPU
print(GPU_index)
MODEL = flags.model
print(MODEL)
LOG_DIR = flags.log_dir
print(LOG_DIR)
NUM_POINT = flags.num_point
print(NUM_POINT)
MAX_EPOCH = flags.max_epoch
print(MAX_EPOCH)
BATCH_SIZE = flags.batch_size
print(BATCH_SIZE)
LEARNING_rate = flags.learning_rate
print(LEARNING_rate)
MOMENTUM = flags.momentum
print(MOMENTUM)
OPTIMIZER = flags.optimizer
print(OPTIMIZER)
DECAY_STEP = flags.decay_step
print(DECAY_STEP)
aa = parser.parse_args().decay_rate
print(aa)
运行结果:
0
pointnet_cls
log
1024
250
32
0.001
0.9
adam
200000
0.7
2.使用命令行来运行
进入你想要运行的*py文件的目录,使用 ctrl + 鼠标右键 进入命令行窗口
键入命令:
python xxx.py -h
键入命令:
python xxx.py
键入命令:
python xxx.py --GPU 2
键入命令:
python xxx.py --GPU 2 --model qqq
最后
以上就是跳跃飞鸟为你收集整理的Python学习--argparse-命令行解析库的使用的全部内容,希望文章能够帮你解决Python学习--argparse-命令行解析库的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复