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

詳解Python中的argparse模塊

 更新時間:2023年07月29日 11:08:19   作者:肖申克的陪伴  
這篇文章主要介紹了詳解Python中的argparse模塊,argparse可以讓你輕松地編寫用戶友好的命令行界面,定義你的程序需要的參數(shù),自動生成幫助和用法信息,需要的朋友可以參考下

argparse模塊

argparse是一個用于解析命令行參數(shù)和選項的python標準庫模塊。

它可以讓你輕松地編寫用戶友好的命令行界面,定義你的程序需要的參數(shù),自動生成幫助和用法信息,以及處理用戶給出的無效參數(shù)。

在這篇博客中,我將介紹argparse的基本用法,以及一些高級功能,如子命令、互斥組、文件類型等。

我將用豐富的例子和解釋來幫助你理解和掌握argparse的使用方法。

一、一個最簡單的示例

使用argparse,你可以指定程序所需的參數(shù)、選項以及如何解析它們。

下面是一個基本的示例,演示了如何使用argparse來解析命令行參數(shù):

import argparse
# 創(chuàng)建ArgumentParser對象
parser = argparse.ArgumentParser(description='這是一個使用argparse的示例程序')
# 添加位置參數(shù)
parser.add_argument('name', help='姓名')
parser.add_argument('age', type=int, help='年齡')
# 添加可選參數(shù)
parser.add_argument('--gender', choices=['male', 'female'], help='性別')
parser.add_argument('--height', type=float, help='身高')
# 解析命令行參數(shù)
args = parser.parse_args()
# 訪問解析后的參數(shù)
print(f'姓名: {args.name}')
print(f'年齡: {args.age}')
print(f'性別: {args.gender}')
print(f'身高: {args.height}')

在上面的示例中,我們首先創(chuàng)建了一個ArgumentParser對象,并提供了一個描述性的文字作為參數(shù)。

然后,我們添加了兩個位置參數(shù)(name和age),并分別指定了它們的幫助文本。

接下來,我們添加了兩個可選參數(shù)(–gender和–height),并使用choices和type參數(shù)限制了它們的取值范圍和類型。

最后,我們調(diào)用parse_args()方法來解析命令行參數(shù),并將解析后的結果存儲在args變量中。我們可以通過訪問args對象的屬性來獲取解析后的參數(shù)值,并進行相應的處理。

例如,如果我們在命令行中運行上述代碼并提供以下輸入:

python my_program.py John 25 --gender male --height 1.75

輸出將是:

姓名: John
年齡: 25
性別: male
身高: 1.75

或者在pycharm輸入這些參數(shù):

在這里插入圖片描述

這樣可以獲得相同的結果:

在這里插入圖片描述

如果不輸入默認參數(shù)直接運行,會如下圖的報錯:

在這里插入圖片描述

二 、詳細參數(shù)講解

創(chuàng)建一個解析器

要使用argparse,首先你需要創(chuàng)建一個argparse.ArgumentParser的實例,它是一個包含參數(shù)規(guī)范和一些全局選項的容器。

你可以在創(chuàng)建時傳入一些參數(shù),如程序名、描述、幫助信息等,來定制你的解析器。

例如:

import argparse
# 創(chuàng)建一個解析器
parser = argparse.ArgumentParser(
    prog="myprog", # 程序名,默認為sys.argv[0]
    description="This is a program that does something", # 程序描述
    epilog="This is some text at the bottom of help" # 幫助信息底部的文本
)

添加參數(shù)

創(chuàng)建了一個解析器后,你需要用add_argument()方法來添加你想要解析的參數(shù)。

argparse支持兩種類型的參數(shù):位置參數(shù)和可選參數(shù)。

位置參數(shù)是根據(jù)它們在命令行中出現(xiàn)的位置來識別的,它們通常是必須提供的參數(shù)。

例如:

# 添加一個位置參數(shù)
parser.add_argument("filename", help="the name of the file to process")

可選參數(shù)是根據(jù)它們前面的短橫線或雙橫線來識別的,它們通常是可以省略或指定不同值的參數(shù)。例如:

# 添加一個可選參數(shù)
parser.add_argument("-v", "--verbose", help="increase output verbosity", action="store_true")

add_argument()方法可以接受很多參數(shù)來定制你的參數(shù)行為和屬性,如類型、默認值、選項、必需性、幫助信息等。你可以查看[argparse文檔]來了解更多細節(jié)。

解析參數(shù)

添加了所有想要解析的參數(shù)后,你可以用parse_args()方法來運行解析器,并將提取出來的數(shù)據(jù)放在一個argparse.Namespace對象中。例如:

# 解析參數(shù)
args = parser.parse_args()
# 使用參數(shù)
if args.verbose:
    print(f"Processing {args.filename} in verbose mode")
else:
    print(f"Processing {args.filename}")

如果用戶給出了無效或不符合規(guī)范的參數(shù),argparse會自動報錯并退出程序。如果用戶沒有給出任何參數(shù)或給出了-h或–help選項,argparse會自動打印幫助信息并退出程序。

子命令

有時候,你可能想要讓你的程序支持不同的子命令,就像git或pip那樣。例如:

$ git clone https://github.com/python/cpython.git
$ git status
$ git commit -m "some message"

要實現(xiàn)這個功能,你可以使用add_subparsers()方法來創(chuàng)建一個子解析器,并為每個子命令添加一個子解析器。例如:

# 創(chuàng)建一個主解析器
parser = argparse.ArgumentParser(description="A simple calculator")
# 創(chuàng)建一個子解析器
subparsers = parser.add_subparsers(help="sub-command help")
# 為每個子命令添加一個子解析器
parser_add = subparsers.add_parser("add", help="add two numbers")
parser_add.add_argument("x", type=int, help="the first number")
parser_add.add_argument("y", type=int, help="the second number")
parser_sub = subparsers.add_parser("sub", help="subtract two numbers")
parser_sub.add_argument("x", type=int, help="the first number")
parser_sub.add_argument("y", type=int, help="the second number")
parser_mul = subparsers.add_parser("mul", help="multiply two numbers")
parser_mul.add_argument("x", type=int, help="the first number")
parser_mul.add_argument("y", type=int, help="the second number")
parser_div = subparsers.add_parser("div", help="divide two numbers")
parser_div.add_argument("x", type=int, help="the first number")
parser_div.add_argument("y", type=int, help="the second number")
# 解析參數(shù)
args = parser.parse_args()
# 使用參數(shù)
if args.subcommand == "add":
    print(args.x + args.y)
elif args.subcommand == "sub":
    print(args.x - args.y)
elif args.subcommand == "mul":
    print(args.x * args.y)
elif args.subcommand == "div":
    print(args.x / args.y)

互斥組

有時候,你可能想要讓你的程序只接受一些互斥的選項,即不能同時出現(xiàn)的選項。例如:

$ python3 prog.py -a
$ python3 prog.py -b
$ python3 prog.py -a -b # 錯誤

要實現(xiàn)這個功能,你可以使用add_mutually_exclusive_group()方法來創(chuàng)建一個互斥組,并為該組添加一些選項。例如:

# 創(chuàng)建一個解析器
parser = argparse.ArgumentParser(description="A simple program")
# 創(chuàng)建一個互斥組
group = parser.add_mutually_exclusive_group()
# 為該組添加一些選項
group.add_argument("-a", action="store_true")
group.add_argument("-b", action="store_true")
# 解析參數(shù)
args = parser.parse_args()
# 使用參數(shù)
if args.a:
    print("Option A is selected")
elif args.b:
    print("Option B is selected")
else:
    print("No option is selected")

文件類型

有時候,你可能想要讓你的程序接受一個文件名作為參數(shù),并自動打開或創(chuàng)建該文件。例如:

$ python3 prog.py input.txt output.txt

要實現(xiàn)這個功能,你可以使用argparse.FileType類來指定你的參數(shù)的類型,它會返回一個類似于open()函數(shù)返回的文件對象。例如:

# 創(chuàng)建一個解析器
parser = argparse.ArgumentParser(description="A simple program that reads from a file and writes to another file")
# 添加兩個文件類型的參數(shù)
parser.add_argument("infile", type=argparse.FileType("r"), help="the input file")
parser.add_argument("outfile", type=argparse.FileType("w"), help="the output file")
# 解析參數(shù)
args = parser.parse_args()
# 使用參數(shù)
for line in args.infile:
    args.outfile.write(line.upper())

總結

argparse是Python標準庫中一個強大而靈活的模塊,用于解析命令行參數(shù)和生成美觀的幫助文檔。

無論是簡單的腳本還是復雜的應用程序,argparse都能幫助開發(fā)者輕松地處理各種命令行參數(shù),并提供友好的用戶界面。

通過使用argparse,開發(fā)者可以定義參數(shù)的類型、默認值、限制條件以及互斥關系,從而確保命令行輸入的合法性和一致性。

無需編寫繁瑣的解析代碼,argparse的簡潔接口使得命令行參數(shù)的處理變得簡單而愉快。

不僅如此,argparse還能自動生成詳細的幫助文檔,為用戶提供清晰明了的命令行使用說明。

在Python中,argparse被廣泛應用于各種項目,成為處理命令行參數(shù)的首選工具。

無論是初學者還是有經(jīng)驗的開發(fā)者,掌握argparse的使用技巧都將極大地提升命令行工具的質量和用戶體驗。

到此這篇關于詳解Python中的argparse模塊的文章就介紹到這了,更多相關Python的argparse模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python計算三角函數(shù)之a(chǎn)sin()方法的使用

    Python計算三角函數(shù)之a(chǎn)sin()方法的使用

    這篇文章主要介紹了Python計算三角函數(shù)之a(chǎn)sin()方法的使用,是Python入門的基礎知識,需要的朋友可以參考下
    2015-05-05
  • python urllib爬取百度云連接的實例代碼

    python urllib爬取百度云連接的實例代碼

    本篇文章主要介紹了python urllib爬取百度云連接的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • python Canny邊緣檢測算法的實現(xiàn)

    python Canny邊緣檢測算法的實現(xiàn)

    這篇文章主要介紹了python Canny邊緣檢測算法的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 一文淺析Python如何構建優(yōu)雅的異常體系

    一文淺析Python如何構建優(yōu)雅的異常體系

    這篇文章主要介紹了Python異常處理的核心原則與最佳實踐,文內(nèi)首先指出異常處理常被低估,通過真實案例展示了不當處理帶來的隱患,隨后解析了Python異常機制的本質是一種控制流信號,并詳細介紹了異常層級結構,有需要的小伙伴可以了解下
    2026-03-03
  • 使用python快速生成nodejs項目文件結構

    使用python快速生成nodejs項目文件結構

    這篇文章主要介紹了如何使用Python快速生成nodejs項目文件結構,主要是為了解決AI Studio生成的Node.js程序的存放文件夾并快速生成問題的工具軟件,有需要的可以了解下
    2026-01-01
  • Pytorch GPU版本安裝全過程

    Pytorch GPU版本安裝全過程

    本文介紹了查看和安裝GPU版本PyTorch的方法,首先通過代碼查看當前PyTorch版本,然后通過檢查電腦顯卡驅動版本來判斷是否安裝GPU版本的PyTorch,接著卸載之前的PyTorch并安裝適合的GPU版本,最后通過代碼檢驗安裝是否成功
    2026-04-04
  • python文件操作相關知識點總結整理

    python文件操作相關知識點總結整理

    這篇文章主要介紹了python文件操作相關知識點,整理匯總了Python文件操作所涉及的常見函數(shù)與方法,并給出了實例代碼予以總結歸納,需要的朋友可以參考下
    2016-02-02
  • Python列表切片常用操作實例解析

    Python列表切片常用操作實例解析

    這篇文章主要介紹了Python列表切片常用操作實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Python延時操作實現(xiàn)方法示例

    Python延時操作實現(xiàn)方法示例

    這篇文章主要介紹了Python延時操作實現(xiàn)方法,結合實例形式分析了Python基于sched庫與time庫實現(xiàn)延時操作的方法,需要的朋友可以參考下
    2018-08-08
  • 淺談MySQL中的觸發(fā)器

    淺談MySQL中的觸發(fā)器

    這篇文章主要介紹了MySQL中的觸發(fā)器,包括使用觸發(fā)器添加、更新、刪除用戶等操作,需要的朋友可以參考下
    2015-05-05

最新評論

新兴县| 图木舒克市| 鄄城县| 济南市| 霍山县| 阿拉善左旗| 繁昌县| 来安县| 张家川| 中西区| 祁阳县| 柳河县| 钟山县| 正蓝旗| 韶山市| 永新县| 都兰县| 黄陵县| 安远县| 通江县| 敖汉旗| 新密市| 土默特右旗| 元谋县| 三江| 奉新县| 元阳县| 左云县| 建瓯市| 泸西县| 呼图壁县| 招远市| 长沙县| 阿合奇县| 桦南县| 普宁市| 霍林郭勒市| 罗定市| 随州市| 吉首市| 同德县|