argparse简介
argparse
是一个用来解析命令行参数的 Python 库。通过该模块可以使用户便捷地在命令行运行程序的同时传入简单的参数。
为了使用户体验更加友好,argparse还提供了帮助信息,通过-h
或--help
可以显示该程序的描述信息、每个参数的名称以及帮助信息等等。
此外,当用户为程序提供了无效参数时,该模块还会自动生成帮助和使用情况消息并发出错误。
例子
以下代码是一个Python程序test.py
,采用argparse从命令行获取。
import argparse
def main():
parser = argparse.ArgumentParser(description="This is a demo of how to use argparse.")
parser.add_argument('--name', type=str, default='Tom', help='name of the character.')
parser.add_argument('--age', type=int, default=20, help="How old is he/she?")
parser.add_argument('--location', type=str, default='China', help='Where is he/she come from?')
args = parser.parse_args()
name = args.name
age = args.age
location = args.location
print("Hello,my name is {}, I'm {} year's old, I come from {}.".format(name, age, location))
if __name__ == '__main__':
main()
在终端分别执行命令python test.py
和python test.py --name Sam --age 25 --location France
,可以看到:
其中,第一次执行不带任何可选参数,可见,传入的是每一个可选参数的default值。第二次执行分别填写了可选参数。
代码分析
1 创建参数解析器
首先,导入argparse模块,创建一个ArgumentParser
对象parser
。其中的description
关键字处可以写一些简要的描述信息,当在命令行显示帮助信息的时候即可看到。
parser = argparse.ArgumentParser(description="This is a demo of how to use argparse.")
2 添加参数
然后,我们使用add_argument()
方法来添加运行test.py
时的可选参数。
传递给add_argument()
方法的第一个参数是该可选参数或位置参数(例如文件名列表)的名称,例如(-name
、--name
、name
)。
type
——是该参数的类型。
default
——是该可选参数的默认值。
help
——对这个可选参数的帮助信息,当用户输入python test.py -h
时就可查看到。
parser.add_argument('--name', type=str, default='Tom', help='name of the character.')
此外,常用的其他关键字还有:
action
——用于接收True/False类型的参数,向add_argument()
方法中加入参数action=store_true/store_false
。添加一行带action
关键字的add_augment方法并打印出来:
parser.add_argument('--saved', action='store_true')
action的值为store_true
,意味着当用户传入该参数result_saved
时,就将其值标为True;如果没有传入该参数,则默认状态下其值为False。反之亦然。
3 解析参数
最后,ArgumentParser
通过parse_args()
方法解析参数 。这将检查命令行,并将每个参数转换为适当的类型,然后调用适当的操作。
4 -h帮助
在命令行执行python test.py -h
时,即可查看帮助信息,包括在ArgumentParser()
方法的description
处填的描述信息、每一个可选参数的帮助信息等。
参考链接
[1] https://blog.csdn.net/yy_diego/article/details/82851661.
[2] https://docs.python.org/3/library/argparse.html.