Python 内置模块之 argparse - 解析命令行参数
官方文档:https://docs.python.org/zh-cn/3.8/library/argparse.html
python 命令行参数(sys.argv)
有时候我们需要写一些脚本处理一些任务,这时候往往需要提供一些命令行参数,根据不同参数进行不同的处理,在 Python 里,命令行的参数和 C 语言很类似(因为标准 Python 是用 C 语言实现的)。在 C 语言里,main 函数的原型为 int main(int argc, char **argv)
,这里主要指 linux 平台,argc
指的是命令行传入的参数个数(程序的 name 为第一个参数),而 argv
则是一个指针数组,每一个元素为指向一个命令行参数的指针。在 Python 里的命令行参数是存储在 sys.argv
里,argv 是一个列表,第一个元素也为程序名称。
1 |
|
argparse 模块
argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv
中解析出这些参数,并自动生成帮助和使用信息。当然,Python 也有第三方的库可用于命令行解析,而且功能也更加强大,比如 docopt
,Click
。
1. 命令行参数分为位置参数和选项参数
- 位置参数就是程序根据该参数出现的位置来确定的
- 如:
ls root/
。其中root/
是位置参数
- 如:
- 选项参数是应用程序已经提前定义好的参数,不是随意指定的
- 如:
ls -l
。-l
就是ls
命令里的一个选项参数
- 如:
2. 简单示例:
1 |
|
3. argparse.ArgumentParser()
作用:实例化
方法:
1 |
|
4. add_argument()
作用:给 ArgumentParser 对象添加新的命令行参数,参数的类型和相应的处理方法由不同的参数决定。
语法:
1 |
|
示例
1 |
|
5.parse_args(args=None, namespace=None)
parse_args()
方法将命令行参数字符串转换为相应对象并赋值给 Namespace 对象的相应属性,默认返回一个 Namespace 对象。
Python 内置模块之 argparse - 解析命令行参数
https://flepeng.github.io/021-Python-31-Python-标准库-Python-标准库之-argparse-解析命令行参数/