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

Python?argparse傳遞外部參數(shù)詳細(xì)教程

 更新時(shí)間:2026年01月28日 09:18:00   作者:?jiǎn)倔希⊿YL)  
argparse是python自帶的命令行參數(shù)解析包,可以用來方便地讀取命令行參數(shù),下面這篇文章主要介紹了Python?argparse傳遞外部參數(shù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

什么是 argparse?

argparse 是 Python 標(biāo)準(zhǔn)庫中用于解析命令行參數(shù)的模塊。它能讓您的 Python 腳本像專業(yè)命令行工具一樣接收和處理用戶輸入的參數(shù),比如:

python train.py --epochs 100 --batch-size 32 --verbose

主要功能

  • ? 自動(dòng)生成幫助信息(-h--help
  • ? 自動(dòng)驗(yàn)證參數(shù)類型和值
  • ? 支持必選/可選參數(shù)
  • ? 提供友好的錯(cuò)誤提示

應(yīng)用場(chǎng)景

  • 數(shù)據(jù)處理腳本:指定輸入輸出文件、處理參數(shù)
  • 機(jī)器學(xué)習(xí)訓(xùn)練:傳遞超參數(shù)、模型配置
  • 自動(dòng)化工具:控制腳本行為、運(yùn)行模式

核心概念

在開始示例之前,先了解幾個(gè)重要概念:

1. 參數(shù)類型

  • 位置參數(shù):必須提供,按順序傳遞(如 python script.py file.txt
  • 可選參數(shù):以 --- 開頭,可以不提供(如 --output result.txt

2. 常用參數(shù)選項(xiàng)

參數(shù)說明示例
type指定參數(shù)類型type=int 只接受整數(shù)
default默認(rèn)值default=10 不提供時(shí)使用 10
help幫助信息help='輸入文件路徑'
action='store_true'布爾標(biāo)志,出現(xiàn)即為 True用于 --verbose、--debug 等開關(guān)
choices限定可選值choices=['A', 'B', 'C']
nargs接受多個(gè)值nargs='+' 至少一個(gè)值

3. 短選項(xiàng) vs 長(zhǎng)選項(xiàng)

  • 短選項(xiàng):?jiǎn)蝹€(gè)字母,用 - 開頭,如 -v
  • 長(zhǎng)選項(xiàng):完整單詞,用 -- 開頭,如 --verbose
  • 通常成對(duì)出現(xiàn),提供簡(jiǎn)寫和可讀性

入門示例

示例 1:最簡(jiǎn)單的開始

目標(biāo):創(chuàng)建一個(gè)程序,接收一個(gè)名字并打印問候語。

新手提示:這是最基礎(chǔ)的例子,只用一個(gè)位置參數(shù)。位置參數(shù)是必需的,用戶必須提供。

import argparse

# 第 1 步:創(chuàng)建解析器
parser = argparse.ArgumentParser(description='簡(jiǎn)單的問候程序')

# 第 2 步:添加參數(shù)
parser.add_argument('name', help='你的名字')

# 第 3 步:解析參數(shù)
args = parser.parse_args()

# 第 4 步:使用參數(shù)
print(f"你好, {args.name}!")

運(yùn)行效果

python script.py 張三
# 輸出:你好, 張三!

python script.py
# 錯(cuò)誤:the following arguments are required: name

python script.py -h
# 顯示幫助信息

關(guān)鍵要點(diǎn)

  • 使用三步走:創(chuàng)建解析器 → 添加參數(shù) → 解析參數(shù)
  • 參數(shù)通過 args.參數(shù)名 訪問
  • 自動(dòng)生成 -h 幫助

示例 2:添加可選參數(shù)

目標(biāo):在上個(gè)例子基礎(chǔ)上,讓用戶可以自定義問候語。

提示:這次引入可選參數(shù)。可選參數(shù)以 -- 開頭,不提供時(shí)會(huì)使用默認(rèn)值。我們用 default 參數(shù)來設(shè)置默認(rèn)值。

import argparse

parser = argparse.ArgumentParser(description='可自定義的問候程序')

# 位置參數(shù)(必需)
parser.add_argument('name', help='你的名字')

# 可選參數(shù)(有默認(rèn)值)
parser.add_argument('--greeting', 
                    default='你好',
                    help='問候語(默認(rèn):你好)')

args = parser.parse_args()

print(f"{args.greeting}, {args.name}!")

運(yùn)行效果

python script.py 張三
# 輸出:你好, 張三!

python script.py 張三 --greeting 早上好
# 輸出:早上好, 張三!

關(guān)鍵要點(diǎn)

  • 可選參數(shù)用 -- 開頭
  • default 設(shè)置默認(rèn)值
  • 可以不提供,不影響程序運(yùn)行

示例 3:類型驗(yàn)證

目標(biāo):編寫一個(gè)計(jì)算器,計(jì)算兩個(gè)數(shù)的和。

新手提示:現(xiàn)在引入 type 參數(shù)。argparse 默認(rèn)把所有輸入當(dāng)作字符串,使用 type=int 可以自動(dòng)轉(zhuǎn)換為整數(shù),并驗(yàn)證輸入是否合法。

import argparse

parser = argparse.ArgumentParser(description='簡(jiǎn)單計(jì)算器')

# 指定參數(shù)類型為整數(shù)
parser.add_argument('num1', type=int, help='第一個(gè)數(shù)字')
parser.add_argument('num2', type=int, help='第二個(gè)數(shù)字')

args = parser.parse_args()

result = args.num1 + args.num2
print(f"{args.num1} + {args.num2} = {result}")

運(yùn)行效果

python script.py 10 20
# 輸出:10 + 20 = 30

python script.py 10 abc
# 錯(cuò)誤:argument num2: invalid int value: 'abc'

關(guān)鍵要點(diǎn)

  • type=int 自動(dòng)轉(zhuǎn)換并驗(yàn)證
  • 常用類型:int、float、str
  • 輸入不符合類型時(shí)自動(dòng)報(bào)錯(cuò)

示例 4:布爾開關(guān)

目標(biāo):添加一個(gè) --verbose 開關(guān),控制是否顯示詳細(xì)信息。

新手提示:這里介紹布爾標(biāo)志。使用 action='store_true' 后,該參數(shù)不需要值,只要在命令行中出現(xiàn),就會(huì)被設(shè)置為 True;不出現(xiàn)就是 False。這常用于 --verbose(詳細(xì)模式)、--debug(調(diào)試模式)等開關(guān)。

import argparse

parser = argparse.ArgumentParser(description='帶詳細(xì)模式的計(jì)算器')

parser.add_argument('num1', type=int, help='第一個(gè)數(shù)字')
parser.add_argument('num2', type=int, help='第二個(gè)數(shù)字')

# 布爾開關(guān):出現(xiàn)即為 True
parser.add_argument('--verbose', 
                    action='store_true',
                    help='顯示詳細(xì)計(jì)算過程')

args = parser.parse_args()

result = args.num1 + args.num2

if args.verbose:
    print(f"詳細(xì)信息:{args.num1} + {args.num2} = {result}")
else:
    print(result)

運(yùn)行效果

python script.py 10 20
# 輸出:30

python script.py 10 20 --verbose
# 輸出:詳細(xì)信息:10 + 20 = 30

關(guān)鍵要點(diǎn)

  • action='store_true' 創(chuàng)建布爾開關(guān)
  • 不需要傳值,出現(xiàn)即為 True
  • 適合控制程序行為的開關(guān)

示例 5:短選項(xiàng)和長(zhǎng)選項(xiàng)

目標(biāo):為參數(shù)同時(shí)提供簡(jiǎn)寫(短選項(xiàng))和完整名稱(長(zhǎng)選項(xiàng))。

新手提示:專業(yè)的命令行工具通常同時(shí)提供短選項(xiàng)(如 -v)和長(zhǎng)選項(xiàng)(如 --verbose)。短選項(xiàng)方便快速輸入,長(zhǎng)選項(xiàng)增強(qiáng)可讀性。只需在 add_argument() 中同時(shí)指定兩個(gè)即可。

import argparse

parser = argparse.ArgumentParser(description='文件計(jì)數(shù)器')

# 同時(shí)提供短選項(xiàng)和長(zhǎng)選項(xiàng)
parser.add_argument('file', help='輸入文件路徑')
parser.add_argument('-c', '--count', 
                    type=int, 
                    default=10,
                    help='顯示前 N 行(默認(rèn):10)')
parser.add_argument('-v', '--verbose', 
                    action='store_true',
                    help='顯示詳細(xì)信息')

args = parser.parse_args()

print(f"將讀取文件: {args.file}")
print(f"顯示行數(shù): {args.count}")
if args.verbose:
    print("詳細(xì)模式已啟用")

運(yùn)行效果

python script.py data.txt -c 5 -v
# 等同于:python script.py data.txt --count 5 --verbose

# 輸出:
# 將讀取文件: data.txt
# 顯示行數(shù): 5
# 詳細(xì)模式已啟用

關(guān)鍵要點(diǎn)

  • 短選項(xiàng)和長(zhǎng)選項(xiàng)可以同時(shí)使用
  • 兩種形式完全等價(jià)
  • 約定:短選項(xiàng)用單字母,長(zhǎng)選項(xiàng)用完整單詞

示例 6:限定可選值

目標(biāo):創(chuàng)建一個(gè)日志程序,讓用戶選擇日志級(jí)別。

新手提示:當(dāng)參數(shù)只能從幾個(gè)固定值中選擇時(shí),使用 choices 參數(shù)。這樣 argparse 會(huì)自動(dòng)驗(yàn)證輸入,并在幫助信息中顯示所有可選項(xiàng)。

import argparse

parser = argparse.ArgumentParser(description='日志記錄器')

parser.add_argument('message', help='日志消息')
parser.add_argument('-l', '--level', 
                    choices=['debug', 'info', 'warning', 'error'],
                    default='info',
                    help='日志級(jí)別')

args = parser.parse_args()

print(f"[{args.level.upper()}] {args.message}")

運(yùn)行效果

python script.py "服務(wù)器啟動(dòng)成功" --level info
# 輸出:[INFO] 服務(wù)器啟動(dòng)成功

python script.py "出錯(cuò)了" --level critical
# 錯(cuò)誤:argument -l/--level: invalid choice: 'critical'
#       (choose from 'debug', 'info', 'warning', 'error')

關(guān)鍵要點(diǎn)

  • choices 限定參數(shù)只能從列表中選擇
  • 自動(dòng)驗(yàn)證和生成錯(cuò)誤提示
  • 幫助信息會(huì)顯示所有可選值

示例 7:實(shí)戰(zhàn)應(yīng)用

目標(biāo):創(chuàng)建一個(gè)簡(jiǎn)單的文本處理工具,綜合運(yùn)用前面的知識(shí)。

新手提示:這是一個(gè)綜合示例,整合了位置參數(shù)、可選參數(shù)、類型驗(yàn)證、布爾開關(guān)等。實(shí)際項(xiàng)目中的 argparse 使用就是這樣的結(jié)構(gòu)。

import argparse

parser = argparse.ArgumentParser(
    description='文本處理工具',
    epilog='示例: python script.py input.txt --output result.txt --uppercase'
)

# 輸入文件(必需)
parser.add_argument('input', help='輸入文件路徑')

# 輸出文件(可選,有默認(rèn)值)
parser.add_argument('-o', '--output', 
                    default='output.txt',
                    help='輸出文件路徑(默認(rèn):output.txt)')

# 處理選項(xiàng)
parser.add_argument('--uppercase', 
                    action='store_true',
                    help='轉(zhuǎn)換為大寫')

parser.add_argument('--limit', 
                    type=int,
                    help='只處理前 N 行')

parser.add_argument('-v', '--verbose', 
                    action='store_true',
                    help='顯示處理進(jìn)度')

args = parser.parse_args()

# 實(shí)際使用
if args.verbose:
    print(f"讀取文件: {args.input}")
    print(f"輸出到: {args.output}")
    if args.uppercase:
        print("將轉(zhuǎn)換為大寫")
    if args.limit:
        print(f"只處理前 {args.limit} 行")

# 這里添加實(shí)際的文件處理邏輯
print("處理完成!")

運(yùn)行效果

python script.py data.txt -o result.txt --uppercase --limit 100 -v

# 輸出:
# 讀取文件: data.txt
# 輸出到: result.txt
# 將轉(zhuǎn)換為大寫
# 只處理前 100 行
# 處理完成!

關(guān)鍵要點(diǎn)

  • 實(shí)際應(yīng)用中會(huì)組合多種參數(shù)類型
  • epilog 可以在幫助信息末尾添加使用示例
  • 結(jié)構(gòu)清晰:先必需參數(shù),再可選參數(shù),最后開關(guān)

其他選擇

sys.argv - 最簡(jiǎn)單

當(dāng)腳本只需要1-2個(gè)簡(jiǎn)單參數(shù)時(shí):

import sys
filename = sys.argv[1]  # 直接獲取第一個(gè)參數(shù)

適用場(chǎng)景:快速腳本,參數(shù)極少

總結(jié):argparse 是編寫專業(yè)命令行工具的標(biāo)準(zhǔn)方案。掌握本文的 7 個(gè)示例,就能處理 絕對(duì)多數(shù)日常需求。

總結(jié)

到此這篇關(guān)于Python argparse傳遞外部參數(shù)的文章就介紹到這了,更多相關(guān)Python argparse傳遞外部參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 從零帶你使用Python實(shí)現(xiàn)RAG(檢索增強(qiáng)生成)系統(tǒng)

    從零帶你使用Python實(shí)現(xiàn)RAG(檢索增強(qiáng)生成)系統(tǒng)

    檢索增強(qiáng)生成(Retrieval-Augmented Generation, RAG)是當(dāng)下最熱門的 AI 應(yīng)用架構(gòu)之一,本文將帶你從零開始,用 Python 完整實(shí)現(xiàn)一個(gè) RAG 系統(tǒng),涵蓋文檔加載,文本分塊,向量嵌入,語義檢索與生成回答的完整鏈路
    2026-04-04
  • Pandas中GroupBy具體用法詳解

    Pandas中GroupBy具體用法詳解

    pandas中的DF數(shù)據(jù)類型可以像數(shù)據(jù)庫表格一樣進(jìn)行g(shù)roupby操作。通常來說groupby操作可以分為三部分:分割數(shù)據(jù),應(yīng)用變換和和合并數(shù)據(jù)。本文就詳細(xì)的來介紹一下,感興趣的可以了解一下
    2021-07-07
  • Python處理菜單消息操作示例【基于win32ui模塊】

    Python處理菜單消息操作示例【基于win32ui模塊】

    這篇文章主要介紹了Python處理菜單消息操作,結(jié)合實(shí)例形式分析了Python基于win32ui模塊實(shí)現(xiàn)菜單的創(chuàng)建及菜單項(xiàng)響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • 在python代碼中加入環(huán)境變量的語句操作

    在python代碼中加入環(huán)境變量的語句操作

    這篇文章主要介紹了在python代碼中加入環(huán)境變量的語句操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • python開發(fā)簡(jiǎn)易版在線音樂播放器

    python開發(fā)簡(jiǎn)易版在線音樂播放器

    這篇文章主要為大家詳細(xì)介紹了python開發(fā)簡(jiǎn)易版在線音樂播放器的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Python實(shí)現(xiàn)中一次讀取多個(gè)值的方法

    Python實(shí)現(xiàn)中一次讀取多個(gè)值的方法

    下面小編就為大家分享一篇Python實(shí)現(xiàn)中一次讀取多個(gè)值的方法,具有很好的參考價(jià)值,我對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 淺析Python中接口與抽象基類的使用

    淺析Python中接口與抽象基類的使用

    這篇文章主要為大家詳細(xì)介紹了Python中兩個(gè)為面向?qū)ο缶幊烫峁┑膹?qiáng)大工具接口和抽象基類的使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • Python?包管理器pip入門教程

    Python?包管理器pip入門教程

    這篇文章主要為大家介紹了Python?pip包管理器入門教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Python基于百度云文字識(shí)別API

    Python基于百度云文字識(shí)別API

    這篇文章主要介紹了Python基于百度云文字識(shí)別API,用Python實(shí)現(xiàn)最簡(jiǎn)單的文字識(shí)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • minconda安裝pytorch的詳細(xì)方法

    minconda安裝pytorch的詳細(xì)方法

    這篇文章主要介紹了minconda安裝pytorch的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03

最新評(píng)論

顺平县| 枣庄市| 四会市| 新丰县| 嘉禾县| 奉新县| 深泽县| 阜南县| 莲花县| 安宁市| 芜湖县| 玛多县| 南乐县| 顺平县| 阿尔山市| 永仁县| 焉耆| 宜城市| 平顺县| 富川| 广州市| 武安市| 五华县| 招远市| 乌拉特后旗| 双峰县| 巩留县| 墨脱县| 太白县| 嘉祥县| 历史| 汕尾市| 锦州市| 六盘水市| 九龙坡区| 郎溪县| 日土县| 凯里市| 双城市| 新营市| 阳东县|