【Python】命令行工具argparse模块的使用方法

上网看了一篇关于这个模块的使用方法,写的很好,是那种可以查阅的说明书,但初学者难以有一个直观的认识。在看这篇博文时,先看一下我的这篇博客,可以帮助大家理解,再去看下边这篇博文,了解argparse包更为详细的功能。下面先附上这篇博客的链接:
https://www.cnblogs.com/piperck/p/8446580.html

argparse是什么

The argparse module makes it easy to write user-friendly command-line interfaces. The program defines what arguments it requires, and argparse will figure out how to parse those out of sys.argv. The argparse module also automatically generates help and usage messages and issues errors when users give the program invalid arguments.

这是python官方的documentation对argparse的说明,大概就是说这个模块可以帮助我们写一个对用户更友好的命令行交互界面。下面通过一个例子说明,先上代码。

import argparse
import sys

#这是一个可以通过命令行进行互动的计算器
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--x', type=float, default=1.0,
                        help="What is the first number?")
    parser.add_argument('--y', type=float, default=1.0,
                        help="What is the second number?")
    parser.add_argument('--operation', type=str, default='add',
                        help='What operation? (add, sub, mul, or div?)')
    args = parser.parse_args()
    sys.stdout.write(str(calc(args)))

def calc(args):
    if args.operation == 'add':
        return args.x + args.y
    elif args.operation == 'sub':
        return args.x - args.y
    elif args.operation == 'mul':
        return args.x * args.y
    elif args.operation == 'div':
        return args.x / args.y

if __name__ == '__main__':
    main()

这是完整代码,首先先介绍他最基本的框架是什么样子的:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument()
args = parser.parse_args()	

在引用了argparse的包之后,我们先初始化一个parser变量,然后在向parser变量中增加语句,就是add_argument()。注意这里的parser是和命令行交互的变量,我们为parser变量添加的argument,最终会显示在命令行窗口上。而如果想反向操作,把我们在命令行输入的数据读取到代码中并进行操作的话,则需要args = parser.parse_args()。这句话让我们把命令行输入的数据读取回了python程序中。
一定要在命令行,也就是windows下的command line tool或者mac下的terminal,运行我们的python程序才会看到效果哦。

在terminal下运行程序

【Python】命令行工具argparse模块的使用方法
可见输出结果是2.0,因为我们对这个程序的默认初始值设置为了x=1,y=1,operation=‘add’。在上边add_argument()中的default参数可以看到。
下边我们试着查看帮助,在运行python的命令后加-h或者-help

#命令行窗口运行python的方法
python .py文件的绝对地址 -h/-help

【Python】命令行工具argparse模块的使用方法可见!我们刚刚加载parser中的argument都显示出来了,作为我们的帮助提示。真的是非常user-friendly了,一个好的程序应该有这样的功能!
我们也可以通过命令行,向程序中输入数据,格式如下

python .py文件的绝对路径 --x=2 --y=3 --operation='mul'

这里变量名是你自己设置的那个,下边看运行结果。
【Python】命令行工具argparse模块的使用方法
可见它输出了正确结果,2*3=6.

argparser最基础的功能已经说明完毕,如果想知道更高级的功能,可以去看上边的那篇博文。不过我感觉应该在linux系统下开发用这个包比较多?其实感觉并不是很常用。