最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?命令行解析工具?argparse基本用法

 更新時間:2022年12月24日 11:34:05   作者:Python數(shù)據(jù)開發(fā)  
在工作中,我們經(jīng)常需要從命令行當(dāng)中解析出指定的參數(shù),而?Python?也提供了相應(yīng)的標(biāo)準庫來做這件事情,比如?sys,?optparse,?getopt,?argparse,這里面功能最強大的莫過于?argparse,下面就來看看它用法,需要的朋友可以參考下

在工作中,我們經(jīng)常需要從命令行當(dāng)中解析出指定的參數(shù),而 Python 也提供了相應(yīng)的標(biāo)準庫來做這件事情,比如 sys, optparse, getopt, argparse。這里面功能最強大的莫過于 argparse,下面就來看看它用法。

import argparse  
  
# 使用 argparse 分為以下幾步  
# 1. 創(chuàng)建命令行解析器對象  
parse = argparse.ArgumentParser(  
    description="這是命令行解析器"  
)  
  
# 2.給解析器添加命令行參數(shù),可以添加任意個  
parse.add_argument("-n", dest="name")  
  
# 3. 從命令中將參數(shù)解析出來  
args = parse.parse_args()  
  
# 然后通過 args 便可以拿到相應(yīng)的參數(shù)值  
print(args.name)

我們執(zhí)行一下看看,當(dāng)前文件叫做 tools.py。

技術(shù)提升

本文由技術(shù)群粉絲投稿分享,項目源碼、數(shù)據(jù)、技術(shù)交流提升,均可加交流群獲取,群友已超過2000人,添加時最好的備注方式為:來源+興趣方向,方便找到志同道合的朋友

怎么樣,是不是很簡單呢?所以我們的重點就在 add_argument 方法上面,來看看它都支持哪些參數(shù)。

import argparse  
  
parse = argparse.ArgumentParser()  
  
# 這里出現(xiàn)了 "-n" 和 "--name"  
# 在命令行中可以通過 '-n 古明地覺' 或者 '--name 古明地覺' 進行指定  
# 兩者的含義是一樣的,但 - 后面一般跟短參數(shù),-- 后面跟長參數(shù)  
# 然后是 dest,它表示獲取相關(guān)參數(shù)值時,使用的名稱  
parse.add_argument("-n", "--name", dest="name")  
# 這里只有一個短參數(shù),那么在命令行中需要通過 -a 來指定  
parse.add_argument("-a", dest="age")  
# 這里只有一個長參數(shù),那么在命令行中需要通過 --gender 來指定  
parse.add_argument("--gender", dest="gender")  
  
args = parse.parse_args()  
  
print(f"name: {args.name}, age: {args.age}, gender: {args.gender}")

我們來試一下:

還是很簡單的,一個 - 后面跟的是短參數(shù),兩個 - 后面跟的是長參數(shù)。在命令行中通過 - 或者 – 進行指定,解析完畢之后再通過 dest 參數(shù)指定的名字進行獲取。

另外,雖然 - 后面跟短參數(shù),-- 后面跟長參數(shù),但我們這樣寫也是可以的。

parse.add_argument("-name", "--n", dest="name")

只不過這種寫法比較怪異,應(yīng)該寫成 --name 和 -n,一個橫杠后面是短參數(shù),兩個是長參數(shù)。

然后這些參數(shù)都是可以不指定的,會使用默認值 None。

如果我希望它是必傳參數(shù),該怎么辦呢?

import argparse  
  
parse = argparse.ArgumentParser()  
  
parse.add_argument("--host", dest="host", required=True)  
parse.add_argument("-p", dest="port", default=6379)  
  
args = parse.parse_args()  
  
print(f"host: {args.host}, port: {args.port}")

我們看到當(dāng) host 不指定的時候,就會報錯。并且我們還通過 default 參數(shù)指定了默認值。

然后是參數(shù)值的類型,不管什么參數(shù),只要我們在命令行當(dāng)中傳遞了,那么解析出來的默認都是字符串類型。

import argparse  
  
parse = argparse.ArgumentParser()  
  
parse.add_argument("-p", dest="port", default=6379)  
  
args = parse.parse_args()  
  
print(f"port 類型: {args.port.__class__}")

那么可不可以指定參數(shù)的類型呢?答案是可以的。

import argparse  
  
parse = argparse.ArgumentParser()  
parse.add_argument("-p", dest="port", type=int)  
args = parse.parse_args()  
  
print(f"port 類型: {args.port.__class__}")

通過指定 type 為 int,那么在將參數(shù)值解析出來之后就會調(diào)用 int 進行轉(zhuǎn)化,轉(zhuǎn)化失敗則報錯。

同理,我們也可以換成其它類型,舉個例子。

還是很簡單的,甚至換成我們自定義的類,或者一個函數(shù)也是可以的,

此時我們就實現(xiàn)了給一個參數(shù)傳遞多個值,不過這種做法屬于是曲線救國,我們應(yīng)該通過另一個參數(shù)實現(xiàn)。

nargs 指定為 *,那么表示 --hobby 可以接收多個值,并且值之間使用空格進行分隔,最終會得到一個列表。如果指定 --hobby,但是不傳值,那么會得到空列表。

以上就是 argparse 的基本用法,更多內(nèi)容可以參考官方文檔。

到此這篇關(guān)于Python 命令行解析工具 argparse很好用的文章就介紹到這了,更多相關(guān)Python   argparse內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pandas創(chuàng)建series的三種方法小結(jié)

    pandas創(chuàng)建series的三種方法小結(jié)

    這篇文章主要介紹了pandas創(chuàng)建series的三種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python translator使用實例

    Python translator使用實例

    translator實例應(yīng)用代碼
    2008-09-09
  • Python數(shù)學(xué)建模PuLP庫線性規(guī)劃入門示例詳解

    Python數(shù)學(xué)建模PuLP庫線性規(guī)劃入門示例詳解

    這篇文章主要為大家介紹了Python數(shù)學(xué)建模PuLP庫線性規(guī)劃入門示例詳解,想學(xué)習(xí)關(guān)于Python建模的同學(xué)可以學(xué)習(xí)參考下,希望能夠有所幫助
    2021-10-10
  • Python數(shù)組并集交集補集代碼實例

    Python數(shù)組并集交集補集代碼實例

    這篇文章主要介紹了Python數(shù)組并集交集補集代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • 詳解appium+python 啟動一個app步驟

    詳解appium+python 啟動一個app步驟

    這篇文章主要介紹了詳解appium+python 啟動一個app步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Python微信庫:itchat的用法詳解

    Python微信庫:itchat的用法詳解

    本篇文章主要介紹了Python微信庫:itchat的用法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • python實現(xiàn)轉(zhuǎn)盤效果 python實現(xiàn)輪盤抽獎游戲

    python實現(xiàn)轉(zhuǎn)盤效果 python實現(xiàn)輪盤抽獎游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)轉(zhuǎn)盤效果,python實現(xiàn)輪盤抽獎游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Tensorflow2.10實現(xiàn)圖像分割任務(wù)示例詳解

    Tensorflow2.10實現(xiàn)圖像分割任務(wù)示例詳解

    這篇文章主要為大家介紹了Tensorflow2.10實現(xiàn)圖像分割任務(wù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • cython加速python代碼的方法實現(xiàn)

    cython加速python代碼的方法實現(xiàn)

    本文主要介紹了cython加速python代碼的方法實現(xiàn),特別是在涉及到數(shù)值計算密集型任務(wù)時,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Python控制臺實現(xiàn)交互式環(huán)境執(zhí)行

    Python控制臺實現(xiàn)交互式環(huán)境執(zhí)行

    這篇文章主要介紹了Python程序如何在交互式環(huán)境中執(zhí)行,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06

最新評論

且末县| 新泰市| 易门县| 高青县| 内黄县| 开远市| 温州市| 巩义市| 曲水县| 五寨县| 漳浦县| 辛集市| 龙海市| 马边| 鄂托克旗| 富顺县| 泾阳县| 雅安市| 九江县| 扬中市| 疏附县| 长武县| 文成县| 象州县| 邵阳县| 天台县| 商河县| 凉城县| 巩留县| 淮阳县| 武强县| 沙雅县| 天水市| 松潘县| 茌平县| 厦门市| 肇源县| 家居| 凉山| 巩义市| 横山县|