python命令行解析之parse_known_args()函數和parse_args()

在python中,命令行解析很好用

1.首先導入命令行解析模塊

import argparse
import sys

2.然後創建對象

parse=argparse.ArgumentParser()

3.然後增加命令行

parse.add_argument("--learning_rate",type=float,default=0.01,help="initial learining rate")
parse.add_argument("--max_steps",type=int,default=2000,help="max")
parse.add_argument("--hidden1",type=int,default=100,help="hidden1")

對於函數add_argumen()第一個是選項,第二個是數據類型,第三個默認值,第四個是help命令時的說明

4.parser.parse_args() 進行解析

arg=parse.parse_args(sys.argv[1:])

其中參數sys.argv[1:]是命令行語句中從第一個到最後。如在ubuntu下輸入命令行,其中 test_argparse.py 爲前面幾行程序的綜合代碼

python test_argparse.py --learning_rate 20 --max_steps 10

則sys.argv[1:] = --learning_rate 20  --max_steps 10

輸出的arg爲namespace空間,結果是:

Namespace(hidden1=100, learning_rate=20.0, max_steps=10)


但是parse_known_args()函數輸出結果爲:

--learning_rate 20 --max_steps 10
20.0
10
100

5.實例程序:

# -* test_argparse.py * -
import argparse
import sys

parse=argparse.ArgumentParser()
parse.add_argument("--learning_rate",type=float,default=0.01,help="initial learining rate")
parse.add_argument("--max_steps",type=int,default=2000,help="max")
parse.add_argument("--hidden1",type=int,default=100,help="hidden1")
flags,unparsed=parse.parse_known_args(sys.argv[1:])
print(flags.learning_rate)
print(flags.max_steps)
print(flags.hidden1)
print(unparsed)

 運行:

python test_argparse.py --learning_rate 20 --max_steps 10

輸出結果:

20.0
10
100
[]

從上面輸出結果可以看出,運行程序後:

flags.learning_rate = 20.0
flags.max_steps = 10
flags.hidden1 = 100
unparsed = [ ]

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