Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据

Python小妙招 argparse库——命令行参数解析模块 用法总结

1. 导入模块

  • import argparse 首先导入python库
  • parser = argparse.ArgumentParser(description=“your script desciption”) 创建一个解析对象,description参数可以用于插入描述脚本用途的信息,可以为空。
  • parser.add_argument() 向该对象中添加你要使用的命令行参数和选项
  • parser.parse_args() 进行解析

在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数,这时我们就需要应用argparse

2. 创建一个最简单脚本

import argparse
parser = argparse.AugmentParser()
parser.parse_args()

3. 添加参数parser.add_argument()

positional arguments-位置参数,默认必选

 parser.add_argument("b")

optional arguments-可选参数

-w 指定的短参数
--weight 指定的长参数

 parser.add_argument("-w","--weight")

这样的话-v必须指定参数值,否则就会报错,如果不给-v传参,还想不让程序报错的话,可以用:

 parser.add_argument("-w","--weight", action="store_true")

type-参数类型

<font color=black size =4>默认的为str
parser.add_argument("-w","--weight", type=int, action="store_true")

choices[]-可选值

限定参数取值范围

parser.add_argument("-w","--weight", choices=[0, 1, 2, 3, 4], type=int, action="store_true")

default-参数默认值

parser.add_argument("-w","--weight", 
  									choices=[0, 1, 2, 3, 4], 
  									type=int,
  								    action="store_true",
  								    default=0)

程序用法帮助

description&&help

parser = argparse.ArgumentParser(description="训练DaliNet模型")
parser.add_argument("-w","--weight", 
  									choices=[0, 1, 2, 3, 4], 
  									type=int,
  								    action="store_true",
  								    default=0,
  								    help="存放weight的位置")
parser.parse_args()

parse_known_args()解析

和parse_args()很像,但parse_known_args()在接受命令行多余参数时不会报错

parser = argparse.ArgumentParser(description="训练DaliNet模型")
parser.add_argument("-w","--weight", 
  									choices=[0, 1, 2, 3, 4], 
  									type=int,
  								    action="store_true",
  								    default=0,
  								    help="存放weight的位置")
flags, unparsed = parser.parse_known_args() 
#$ python prog.py --flag_int 0.02 --double 0.03 a 1
#Namespace(flag_int=0.02)
#['--double', '0.03', 'a', '1']

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 飞桨领航团西安&上海|算法赛经验、医疗影像AI案例、图深度学习……你想听的技术分享都在这!...

下一篇: 降低深度学习开发门槛,“动态图+高层API”能带来多大的便利?

精华推荐