目录
一般解析器的参数只设定description,epilog,其他采用默认值
1.argparse模块简介
在介绍argparse模块之前,先向大家介绍sys.argv。
sys是Python的一个「标准库」,也就是官方出的「模块」,是「System」的简写,
「argv」是「argument variable」参数变量的简写形式,一般在命令行调用的时候由系统传递给程序。这个变量其实是一个List列表,argv[0] 一般是被调用的脚本文件名或全路径,和操作系统有关,argv[1]和以后就是传入的数据了。
说明:
例子:
import sys
def test():
print("test")
if sys.argv[1]=="-t": #进行单元测试
test()
else:
length = sys.argv[1] #将命令行输入的第一个参数赋值给length
filename = sys.argv[2] #将命令行输入的第二个参数赋值给filename
print(length,filename)
输入:python test.py
结果:报错
输入:python test.py -t
结果:test
输入:python test.py 1
结果:报错
输入:python test.py 1 file
结果:1 file
但是这样的语法局限性很大,因此使用我们可以使用argparse模块,此模块可以轻松编写用户友好的命令行界面。该程序定义了它需要的参数,argparse并将找出如何解析这些参数sys.argv。argparse模块还会自动生成帮助和用法消息,并在用户给出程序无效参数时发出错误。
2.实现步骤:
①导入该模块;
②创建一个解析对象;
③添加参数;
④解析参数。
例子:(不完全正确)
import argparse
parser = argparse.ArgumentParser(description='Show you how to use it.')
parser.add_argument('INPUT', help='You have to type in')
parser.add_argument('-in','--INPUT', help='Optional input')
args = parser.parse_args()
3.详细:
①创建解析器
class argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True)
说明如下: