Python借助argparse获取命令行输入参数

1. 按

推荐使用argparse库,可以自动生成帮助文档,且开发使用都很方便,效果很好。
官方文档:https://docs.python.org/3.8/howto/argparse.html

2. 实例

2.1. 添加不需要赋值的选项

If you are familiar with command line usage, you will notice that I haven’t yet touched on the topic of short versions of the options. It’s quite simple:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--version", help="Show the current version.",
                    action="store_true")
args = parser.parse_args()
if args.verbose:
    print("The current version is v1.0")

将上述代码保存在test.py脚本里,然后在命令行中先转到test.py脚本再运行

python test.py -v
The current version is v1.0

再次运行,这次查看一下自动生成的帮助文件,效果很棒。

python test.py -h
usage: test.py [-h] [-v]

optional arguments:
  -h, --help     show this help message and exit
  -v, --version  Show the current version.

2.2. 添加需要赋值的选项

import argparse
parser = argparse.ArgumentParser()
parser.description='please enter two parameters a and b ...'
parser.add_argument("-a", "--inputA", help="this is parameter a", dest="argA", type=int, default="0")
parser.add_argument("-b", "--inputB", help="this is parameter b",  type=int, default="1")
args = parser.parse_args()

print("parameter a is :",args.argA)
print("parameter b is :",args.inputB)

代码保存到test2.py文件中,我们先运行:python test2.py -h,显示如下结果:

python test2.py -h
usage: test2.py [-h] [-a ARGA] [-b INPUTB]

please enter two parameters a and b ...

optional arguments:
  -h, --help            show this help message and exit
  -a ARGA, --inputA ARGA
                        this is parameter a
  -b INPUTB, --inputB INPUTB
                        this is parameter b
  • -h表示显示帮助信息,也可以输入--help显示帮助信息。通常--help是表示完整的长参数,-h表示短参数,两者功能一致。
  • 上面的帮助信息显示有两个参数,输入形式可以是 -a-b或者是--inputA--inputB
  • help="this is parameter a"的帮助信息也会显示在窗口上面,用来描述该参数。
  • type表示该参数类型,必须输入的类型。
  • default表示在没有输入该变量的情况下默认的值。
  • ab两个参数不同的地方在于,a参数中多了一个dest="argA",用来表示在代码中如何引用参数a。这个可以从代码中看到,加了dest之后,参数a的引用方式是args.argA。而b参数因为没有加dest描述,默认的引用方式是args.inputB。参数a使用dest已经改变了其引用名称,因而默认的args.inputA已经不能使用了。

在命令行直接运行 python test2.py ,结果如下:

python test2.py
parameter a is : 0
parameter b is : 1

没有输入参数,于是打印的就是默认的参数数值。

再次尝试进行带参数输入python test2.py -a 2 -b 3,结果如下:

python test2.py -a 2 -b 3
parameter a is : 2
parameter b is : 3

2.3. 更多帮助

一般而言,本文所介绍的两种方法就够用了,如果您还需要更多帮助,可以参考:官方文档

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章