Python命令行參數處理器,快速解析命令行參數

一、什麼是命令行參數

命令行參數是指在運行程序時給程序傳遞的參數,通常包括程序本身路徑和用戶輸入的參數。例如,在命令行中運行python程序時,可以在程序名後面添加參數,例如:

python myprogram.py arg1 arg2

這裡`myprogram.py`是程序名,`arg1`和`arg2`是用戶傳遞的參數。在程序中,可以使用各種方法來解析這些參數,例如分割字符串或使用正則表達式,但這些方法都需要開發人員編寫大量的代碼,而且不夠靈活。Python提供了一個標準模塊——argparse,可以幫助快速解析命令行參數。

二、使用argparse解析命令行參數

argparse模塊是Python標準庫中用於解析命令行參數的模塊,已經自帶於Python3中,不需要安裝。以下是一個使用argparse模塊解析命令行參數的示例。

import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                    const=sum, default=max,
                    help='sum the integers (default: find the max)')

args = parser.parse_args()
print(args.accumulate(args.integers))

以上代碼中,`argparse.ArgumentParser`用於創建一個解析器,`description`用於指定程序的幫助信息,`add_argument`用於添加參數。`add_argument`有以下常用參數:

  • `name or flags` – 參數的名稱或者選項,例如`foo`或`–foo`。
  • `action` – 參數遇到時的響應動作,默認值是“store”。
  • `type` – 命令行參數應當被轉換成的類型。支持的類型包括`int`、`float`、`str`等。
  • `choices` – 可選參數的可選值。
  • `required` – 是否必選。
  • `default` – 默認值。
  • `help` – 參數的幫助信息。

例如,`parser.add_argument(‘integers’, metavar=’N’, type=int, nargs=’+’, help=’an integer for the accumulator’)`指定了一個位置型參數`integers`,用於傳遞整數,而且必須至少傳遞一個。`nargs`參數指定接受的選項數,`+`表示一個或多個,`*`表示零個或多個。

使用以上程序來運行命令行可以如下所示:

$ python prog.py -h
usage: prog.py [-h] [--sum] N [N ...]

Process some integers.

positional arguments:
  N           an integer for the accumulator

optional arguments:
  -h, --help  show this help message and exit
  --sum       sum the integers (default: find the max)

以上程序中的`-h`選項用於打印幫助信息。如果使用如下命令,則傳遞參數`4`、`2`、`3`:

$ python prog.py 4 2 3
4

執行結果為`4`。

三、使用argparse的應用場景

argparse可以用於解析各種命令行參數,包括位置型參數、可選參數、布爾型參數等。以下是一些使用argparse的實例。

1. 位置型參數和可選參數

以下是一個使用位置型參數和可選參數的示例:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('name', type=str, help='Username')
parser.add_argument('--age', type=int, help='Age')
parser.add_argument('--gender', type=str, help='Gender')

args = parser.parse_args()

print(f"Username: {args.name}")
if args.age:
    print(f"Age: {args.age}")
if args.gender:
    print(f"Gender: {args.gender}")

以上程序中,`parser.add_argument(‘name’, type=str, help=’Username’)`指定了一個位置型參數`name`,用於傳遞字符串類型的參數,`parser.add_argument(‘–age’, type=int, help=’Age’)`和`parser.add_argument(‘–gender’, type=str, help=’Gender’)`分別指定了兩個可選參數`age`和`gender`。

如果使用如下命令來運行以上程序:

$ python user.py john --age 30 --gender male
Username: john
Age: 30
Gender: male

執行結果為:

Username: john
Age: 30
Gender: male

2. 布爾型參數

以下是一個使用布爾型參數的示例:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--verbose', action='store_true', help='increase output verbosity')

args = parser.parse_args()

if args.verbose:
    print('Verbose output enabled')

以上程序中,`parser.add_argument(‘–verbose’, action=’store_true’, help=’increase output verbosity’)`指定了一個可選參數`verbose`,如果這個參數被設置為`True`,則程序會打印出`Verbose output enabled`。

如果使用如下命令來運行以上程序:

$ python verbose.py --verbose
Verbose output enabled

執行結果為:

Verbose output enabled

四、總結

在Python中,可以使用argparse模塊來快速解析命令行參數,它支持各種類型的命令行參數,包括位置型參數、可選參數、布爾型參數等。argparse模塊靈活易用,可以幫助開發者快速開發命令行工具。

原創文章,作者:TLNV,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/147679.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TLNV的頭像TLNV
上一篇 2024-11-02 13:11
下一篇 2024-11-02 13:11

相關推薦

  • Ojlat:一款快速開發Web應用程序的框架

    Ojlat是一款用於快速開發Web應用程序的框架。它的主要特點是高效、易用、可擴展且功能齊全。通過Ojlat,開發人員可以輕鬆地構建出高質量的Web應用程序。本文將從多個方面對Oj…

    編程 2025-04-29
  • 三星內存條參數用法介紹

    本文將詳細解釋三星內存條上面的各種參數,讓你更好地了解內存條並選擇適合自己的一款。 一、容量大小 容量大小是內存條最基本的參數,一般以GB為單位表示,常見的有2GB、4GB、8GB…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python input參數變量用法介紹

    本文將從多個方面對Python input括號里參數變量進行闡述與詳解,並提供相應的代碼示例。 一、基本介紹 Python input()函數用於獲取用戶輸入。當程序運行到inpu…

    編程 2025-04-29
  • Spring Boot中發GET請求參數的處理

    本文將詳細介紹如何在Spring Boot中處理GET請求參數,並給出完整的代碼示例。 一、Spring Boot的GET請求參數基礎 在Spring Boot中,處理GET請求參…

    編程 2025-04-29
  • Python Class括號中的參數用法介紹

    本文將對Python中類的括號中的參數進行詳細解析,以幫助初學者熟悉和掌握類的創建以及參數設置。 一、Class的基本定義 在Python中,通過使用關鍵字class來定義類。類包…

    編程 2025-04-29
  • Python函數名稱相同參數不同:多態

    Python是一門面向對象的編程語言,它強烈支持多態性 一、什麼是多態多態是面向對象三大特性中的一種,它指的是:相同的函數名稱可以有不同的實現方式。也就是說,不同的對象調用同名方法…

    編程 2025-04-29
  • Hibernate日誌打印sql參數

    本文將從多個方面介紹如何在Hibernate中打印SQL參數。Hibernate作為一種ORM框架,可以通過打印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • 全能編程開發工程師必知——DTD、XML、XSD以及DTD參數實體

    本文將從大體介紹DTD、XML以及XSD三大知識點,同時深入探究DTD參數實體的作用及實際應用場景。 一、DTD介紹 DTD是文檔類型定義(Document Type Defini…

    編程 2025-04-29
  • Python可變參數

    本文旨在對Python中可變參數進行詳細的探究和講解,包括可變參數的概念、實現方式、使用場景等多個方面,希望能夠對Python開發者有所幫助。 一、可變參數的概念 可變參數是指函數…

    編程 2025-04-29

發表回復

登錄後才能評論