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. 更多幫助

一般而言,本文所介紹的兩種方法就夠用了,如果您還需要更多幫助,可以參考:官方文檔

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