欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python命令行參數(shù)argv和argparse該如何使用

 更新時(shí)間:2021年02月08日 11:17:07   作者:葛木瓜  
這篇文章主要介紹了Python命令行參數(shù)argv和argparse該如何使用,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下

概述

運(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ī)制

    這篇文章主要介紹了分析用Python腳本關(guān)閉文件操作的機(jī)制,作者分Python2.x版本和3.x版本兩種情況進(jìn)行了闡述,需要的朋友可以參考下
    2015-06-06
  • Django入門(mén)優(yōu)缺點(diǎn)及環(huán)境搭建流程

    Django入門(mén)優(yōu)缺點(diǎn)及環(huán)境搭建流程

    這篇文章主要為大家介紹了Django入門(mén)優(yōu)缺點(diǎn)及環(huán)境搭建流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • pyqt添加啟動(dòng)等待界面的操作

    pyqt添加啟動(dòng)等待界面的操作

    這篇文章主要介紹了pyqt添加啟動(dòng)等待界面的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • python使用itchat實(shí)現(xiàn)手機(jī)控制電腦

    python使用itchat實(shí)現(xiàn)手機(jī)控制電腦

    這篇文章主要為大家詳細(xì)介紹了python使用itchat實(shí)現(xiàn)手機(jī)控制電腦,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python構(gòu)建機(jī)器學(xué)習(xí)API服務(wù)的操作過(guò)程

    Python構(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-04
  • Python 類中引用其他類的實(shí)現(xiàn)示例

    Python 類中引用其他類的實(shí)現(xiàn)示例

    在Python中,類的引用是通過(guò)屬性或方法與其他類實(shí)例關(guān)聯(lián),實(shí)現(xiàn)復(fù)雜邏輯,本文介紹了關(guān)聯(lián)、組合等類之間的引用方式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-09-09
  • pyinstaller參數(shù)介紹以及總結(jié)詳解

    pyinstaller參數(shù)介紹以及總結(jié)詳解

    這篇文章主要介紹了pyinstaller參數(shù)介紹以及總結(jié)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python pandas庫(kù)中DataFrame對(duì)行和列的操作實(shí)例講解

    python pandas庫(kù)中DataFrame對(duì)行和列的操作實(shí)例講解

    今天小編就為大家分享一篇python pandas庫(kù)中DataFrame對(duì)行和列的操作實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Python 基于Twisted框架的文件夾網(wǎng)絡(luò)傳輸源碼

    Python 基于Twisted框架的文件夾網(wǎng)絡(luò)傳輸源碼

    這篇文章主要介紹了Python 基于Twisted框架的文件夾網(wǎng)絡(luò)傳輸源碼,需要的朋友可以參考下
    2016-08-08
  • python使用timeit時(shí)間模塊

    python使用timeit時(shí)間模塊

    這篇文章主要介紹了python之timeit統(tǒng)計(jì)運(yùn)行時(shí)間模塊,這個(gè)技巧非常的實(shí)用,感興趣的小伙伴可以試試
    2021-04-04

最新評(píng)論