Python 中argparse模組的使用

2021-08-28 05:27:05 字數 3033 閱讀 2017

閱讀原文

python解析命令列讀取引數有兩種方式:sys.argv和argparse

如果指令碼很簡單或臨時使用,沒有多個複雜的引數選項,可以直接利用sys.argv將指令碼後的引數依次讀取(讀進來的預設是字串格式)。

import sys

print("輸入的引數為:%s" % sys.argv[1])

命令列執行效果:

>python demo.py 1

輸入的引數為:1

如果引數很多,比較複雜,並且型別不統一,那麼argparse可以很好的解決這些問題,下面乙個例項解釋了argparse的基本使用方法。

import argparse

# description引數可以用於描述指令碼的引數作用,預設為空

parser=argparse.argumentparser(description="a description of what the program does")

parser.add_argument('--toy','-t',action='store_true',help='use only 50k samples of data')

parser.add_argument('--num_epochs',choices=[5,10,20],default=5,type=int,help='number of epochs.')

parser.add_argument("--num_layers", type=int, required=true, help="network depth.")

args=parser.parse_args()

print(args)

print(args.toy,args.num_epochs,args.num_layers)

命令列執行效果:

>python demo.py --num_epochs 10 --num_layers 10

namespace(num_epochs=10, num_layers=10, toy=false)

false 10 10

2.1.基本使用

parser.add_argument('--toy','-t',action='store_true',help='use only 50k samples of data')

–toy:為引數名稱;

-t:為引數別稱;

action=『store_true』:引數是否使用,如果使用則為true,否則為false。

>python demo.py -t --num_epochs 10 --num_layers 10

namespace(num_epochs=10, num_layers=10, toy=true)

true 10 10 # 對比和上次執行的區別

help:引數說明

2.2.相關引數

例項1

parser.add_argument('--num_epochs',choices=[5,10,20],default=5,type=int,help='number of epochs.')

choices:候選值,輸出引數必須在候選值裡面,否如會出現下面的結果:

>python demo.py -t --num_epochs 30 --num_layers 10

usage: demo.py [-h] [--toy] [--num_epochs ] --num_layers num_layers

demo.py: error: argument --num_epochs: invalid choice: 30 (choose from 5, 10, 20)

default:預設值,如果不輸入引數,則使用該預設值

>python demo.py -t  --num_layers 10

namespace(num_epochs=5, num_layers=10, toy=true)

true 5 10

int:引數型別

例項2

parser.add_argument("--num_layers", type=int, required=true, help="network depth.")

required:為必選引數,如果不輸入,則出現以下錯誤:

>python demo.py -t --num_epochs 10

usage: demo.py [-h] [--toy] [--num_epochs ] --num_layers num_layers

demo.py: error: the following arguments are required: --num_layers

例項3

-h:輸出引數使用說明資訊

>python demo.py -h

usage: demo.py [-h] [--toy] [--num_epochs ] --num_layers num_layers

a description of what the program does

optional arguments:

-h, --help show this help message and exit

--toy, -t use only 50k samples of data

--num_epochs

number of epochs.

--num_layers num_layers

network depth.

Python中的argparse用法

2 正文 3 結語 1 argparse基本用法,2 argparse簡要用法總結,最近在看python 的時候看到了別人使用 import argparseimport argparse defmain parser argparse.argumentparser demo of argparse...

Python 中argparse模組的使用

python解析命令列讀取引數有兩種方式 sys.ar 和argparse 如果指令碼很簡單或臨時使用,沒有多個複雜的引數選項,可以直接利用sys.ar 將指令碼後的引數依次讀取 讀進來的預設是字串格式 import sys print 輸入的引數為 s sys.ar 1 命令列執行效果 pytho...

python中argparse模組的使用

有兩個檔案乙個是 檔案1 sync shop source bimer.sh 檔案2 sync shop source bimer.py 在sync shop source bimer.sh 中呼叫sync shop source bimer.py 檔案1中產生的檔案要傳遞給檔案2 檔案1中的內容 ...