Python命令行參數(shù)argv和argparse該如何使用
概述
運(yùn)行python腳本時(shí)通過(guò)命令行方式傳入運(yùn)行參數(shù)通常有以下兩種自建方式:
- sys.argv - 簡(jiǎn)潔
- argparse - 豐富,可自定義
下面詳細(xì)說(shuō)一下具體時(shí)使用
argv
# test_argv.py import sys args = sys.argv print(f'args = {args}') >>> output ➜ git:(master) python3 test_argv.py args = ['test_argv.py'] ➜ git:(master) ✗ python3 test_argv.py 1 2 3 args = ['test_argv.py', '1', '2', '3'] ➜ git:(master) ✗ python3 test_argv.py 1 2 3 'hello world !' args = ['test_argv.py', '1', '2', '3', 'hello world !']
從上面可以看出,通過(guò)argv
方法獲取的結(jié)果:
- 返回為list
- 第一個(gè)參數(shù)為腳本本身
- 如參數(shù)中間帶空格,用引號(hào)即可
argparse
argparse模塊的功能較為豐富,其核心是通過(guò)add_argument方法自定義入?yún)⒌模簶?biāo)志、格式、類型和范圍等特性,常用如下:
- *name_or_flag - 定義入?yún)⒚騠lag,如'-n', '--number'
- type - 指定入?yún)㈩愋?/li>
- choices - 指定入?yún)⒎秶?/li>
- default - 指定入?yún)⒛J(rèn)值
- required - 指定該餐素是否不要,布爾類型
- help - 參數(shù)概述
更多請(qǐng)參考: argparse
實(shí)例
test_argv.py
import argparse # 初始化一個(gè)parser對(duì)象 parser = argparse.ArgumentParser(description='test module of argparse') # 指定-n/--number的參數(shù) # 類型為int # help為簡(jiǎn)短地說(shuō)明 parser.add_argument( '-n', '--number', type=int, help='args of number' ) # 指定-o/--output參數(shù) # 并限制類型為:['txt', 'csv', 'doc'] parser.add_argument( '-o', '--output', type=str, choices=['txt', 'csv', 'doc'], help='output method' ) # 指定-d/--default參數(shù) # 并限制類型為:['txt', 'csv', 'doc'] parser.add_argument( '-d', '--default', type=int, choices=[_ for _ in range(1, 10)], default=5, help='default' ) # 指定位置參數(shù)foo parser.add_argument('foo') args = parser.parse_args() print(f'args = {args}') # 獲取指定參數(shù) print( f'number = {args.number}, type = {type(args.number)}\n' f'output = {args.output}, type = {type(args.output)}\n' f'default = {args.default}, type = {type(args.default)}\n' f'foo = {args.foo}, type = {type(args.foo)}' )
output
# -h - 打印help ➜ git:(master) ✗ python3 test_argv.py -h usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}] [-d {1,2,3,4,5,6,7,8,9}] foo test module of argparse positional arguments: foo optional arguments: -h, --help show this help message and exit -n NUMBER, --number NUMBER args of number -o {txt,csv,doc}, --output {txt,csv,doc} output method -d {1,2,3,4,5,6,7,8,9}, --default {1,2,3,4,5,6,7,8,9} default # 不帶參數(shù)運(yùn)行,結(jié)果為None ➜ git:(master) ✗ python3 test_argv.py args = Namespace(number=None, output=None) number = None output = None # 帶參數(shù)運(yùn)行 ➜ git:(master) ✗ python3 test_argv.py -n 33 --output txt args = Namespace(number=33, output='txt') number = 33, type = <class 'int'> output = txt, type = <class 'str'> # 參數(shù)格式錯(cuò)誤 ➜ git:(master) ✗ python3 test_argv.py -n str usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}] test_argv.py: error: argument -n/--number: invalid int value: 'str' ➜ git:(master) ✗ python3 test_argv.py -o excel usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}] test_argv.py: error: argument -o/--output: invalid choice: 'excel' (choose from 'txt', 'csv', 'doc') # 默認(rèn)參數(shù) ➜ git:(master) ✗ python3 test_argv.py args = Namespace(default=5, number=None, output=None) number = None, type = <class 'NoneType'> output = None, type = <class 'NoneType'> output = 5, type = <class 'int'>
以上就是Python命令行參數(shù)argv和argparse該如何使用的詳細(xì)內(nèi)容,更多關(guān)于Python命令行參數(shù)argv和argparse的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
分析用Python腳本關(guān)閉文件操作的機(jī)制
這篇文章主要介紹了分析用Python腳本關(guān)閉文件操作的機(jī)制,作者分Python2.x版本和3.x版本兩種情況進(jìn)行了闡述,需要的朋友可以參考下2015-06-06Django入門(mén)優(yōu)缺點(diǎn)及環(huán)境搭建流程
這篇文章主要為大家介紹了Django入門(mén)優(yōu)缺點(diǎn)及環(huán)境搭建流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11python使用itchat實(shí)現(xiàn)手機(jī)控制電腦
這篇文章主要為大家詳細(xì)介紹了python使用itchat實(shí)現(xiàn)手機(jī)控制電腦,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02Python構(gòu)建機(jī)器學(xué)習(xí)API服務(wù)的操作過(guò)程
這篇文章主要介紹了Python構(gòu)建機(jī)器學(xué)習(xí)API服務(wù)的操作過(guò)程,通過(guò)本文的指導(dǎo),讀者可以學(xué)習(xí)如何使用Python構(gòu)建機(jī)器學(xué)習(xí)模型的API服務(wù),并了解到在實(shí)際應(yīng)用中需要考慮的一些關(guān)鍵問(wèn)題和解決方案,從而為自己的項(xiàng)目提供更好的支持和服務(wù),需要的朋友可以參考下2024-04-04Python 類中引用其他類的實(shí)現(xiàn)示例
在Python中,類的引用是通過(guò)屬性或方法與其他類實(shí)例關(guān)聯(lián),實(shí)現(xiàn)復(fù)雜邏輯,本文介紹了關(guān)聯(lián)、組合等類之間的引用方式,具有一定的參考價(jià)值,感興趣的可以了解一下2024-09-09pyinstaller參數(shù)介紹以及總結(jié)詳解
這篇文章主要介紹了pyinstaller參數(shù)介紹以及總結(jié)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07python pandas庫(kù)中DataFrame對(duì)行和列的操作實(shí)例講解
今天小編就為大家分享一篇python pandas庫(kù)中DataFrame對(duì)行和列的操作實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Python 基于Twisted框架的文件夾網(wǎng)絡(luò)傳輸源碼
這篇文章主要介紹了Python 基于Twisted框架的文件夾網(wǎng)絡(luò)傳輸源碼,需要的朋友可以參考下2016-08-08