哈喽,大家好。
不知道大家有没有发现,最近给大家分享的Python
项目的使用文档用的都是Python
内置的argparse
模块。
今天给大家分享下该模块的使用。
![05ffae15e749890ed02876e665f0a107.png](https://img-blog.csdnimg.cn/img_convert/05ffae15e749890ed02876e665f0a107.png)
大家在使用命令的时候,一般都会用-h
查看命令帮助文档。
如:用rm -h
查看如何删除文件
![d734fa85c988b0eea9044144008a0c48.png](https://img-blog.csdnimg.cn/img_convert/d734fa85c988b0eea9044144008a0c48.png)
再比如,用pip -h
查看如何安装Python
包
![e4bc2f94a2a4236bf0b304132706e76b.png](https://img-blog.csdnimg.cn/img_convert/e4bc2f94a2a4236bf0b304132706e76b.png)
可以发现,这俩命令的帮助文档在格式上有些相似,这说明命令行的帮助文档都遵循一定的套路。
![7a13acbe635f0dbf71dbf45abd19636e.png](https://img-blog.csdnimg.cn/img_convert/7a13acbe635f0dbf71dbf45abd19636e.png)
只要有套路,肯定就有相应的模块方便我们使用。这里所说的模块就是文章开头提到的argparse
。
下面我来分享下argparse
用法,给程序加上专业的说明文档。
首先,我们模仿pip
命令,创建只包含一个必选参数的命令
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('command', help='执行的命令,install,uninstall')
args = parser.parse_args()
if args.command == 'install':
print('安装python包')
上面代码只有一个必须参数command
,用-h
查看帮助文档
python my_pip.py -h
![324a85fd8354bf4d7562f1efa707d3f3.png](https://img-blog.csdnimg.cn/img_convert/324a85fd8354bf4d7562f1efa707d3f3.png)
模块会帮助我们自动生成帮助文档。
上述代码中,我们只实现了install
命令,我们可以执行一下,看看效果
python my_pip.py install
![66b35d8f14144b5edc63d81d21ff3342.png](https://img-blog.csdnimg.cn/img_convert/66b35d8f14144b5edc63d81d21ff3342.png)
除了必选参数,我们还可以在parser
中增加可选参数。
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('command', help='执行的命令,install,uninstall')
parser.add_argument('-i', default='https://pypi.org/simple', help='安装包镜像')
parser.add_argument('--timeout', default='60', help='设置超时时间')
parser.add_argument('-V', '--version', action='version', help='查看版本', version='1.2.1')
args = parser.parse_args()
if args.command == 'install':
print('安装python包')
print(args.i)
print(args.timeout)
可选参数以-
或--
开头。
如果add_argument
函数里既有-
参数也有--
参数,说明它俩是等价的,如:-V
和--version
都是用来查看版本。
用-h
参数再来看下帮助文档
python my_pip.py -h
![04a9e53620013dccbb56a046b9086b6a.png](https://img-blog.csdnimg.cn/img_convert/04a9e53620013dccbb56a046b9086b6a.png)
执行一下看看效果
python my_pip.py install -i xxx.com --timeout 3
![c90715e86d1d5c88bbaf572aba91c6e9.png](https://img-blog.csdnimg.cn/img_convert/c90715e86d1d5c88bbaf572aba91c6e9.png)
执行install
命令式,增加了两个可选参数-i
和--version
,用来指定安装包地址和网络超时时间。
这两个参数都有设置默认值,执行命令时如果不加该参数,会使用默认值。
python my_pip.py install
![21d2851d1953f7b1dfc795fde50e290c.png](https://img-blog.csdnimg.cn/img_convert/21d2851d1953f7b1dfc795fde50e290c.png)
最后,-V
和--version
用来查看当前程序的版本,add_argument
中指定了action
参数,表明使用该参数后执行的动作是查看版本。参数version=1.2.1
就是要返回的版本值。
python my_pip.py --version
或
python my_pip.py -V
![533741a93b1fa2910674927009745d20.png](https://img-blog.csdnimg.cn/img_convert/533741a93b1fa2910674927009745d20.png)
action
的取值除了有version
外,还有其他取值,含义都比较简单,大家可以去官网查阅。
add_argument
函数还有一个比较常见的参数是type
,用来指定参数的数据类型。
有了argparse
模块可以帮我们快速创建程序帮助文档,使用起来非常简单,后续大家写程序就可以直接用起来啦。
![dbb02a801b1d474bcaa4ddd7b66bab6f.png](https://img-blog.csdnimg.cn/img_convert/dbb02a801b1d474bcaa4ddd7b66bab6f.png)
最后,感谢你的关注,我将持续分享优秀的 Python 项目。如果本文对你有用就点个 在看 鼓励一下吧。
END
推荐阅读
牛逼!Python常用数据类型的基本操作(长文系列第①篇)
牛逼!Python的判断、循环和各种表达式(长文系列第②篇)
牛逼!Python函数和文件操作(长文系列第③篇)
牛逼!Python错误、异常和模块(长文系列第④篇)