Python命令行參數快速入門

一、理解Python命令行參數

當我們在終端輸入一條Python命令時,可能需要添加一些參數來指定程序的運行方式。這些參數一般以–或-為前綴,後面跟上參數名稱和對應的值。

比如,我們執行python程序時指定一些參數:

$ python program.py --input input_file.txt --output output_file.txt --verbose

在這個例子中,–input、–output和–verbose都是程序的參數。–input和–output後面跟隨的是文件名,–verbose則不需要值。Python提供了一個內置的模塊argparse,可以用來解析命令行參數。

二、使用argparse模塊

使用argparse模塊可以使得從命令行中讀取參數變得容易,下面是一個簡單的例子,演示如何使用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))

在上述代碼中,我們創建了一個ArgumentParser對象,在add_argument方法中添加了兩個參數:integers和–sum。

其中,integers是一個位置參數,代表在程序中需要讀取一個或多個整數。nargs=’+’表示該參數可以接收多個整數值,最終會被轉化成列表。metavar=’N’指定當命令行參數出現問題時打印的參數名稱。

–sum是一個可選參數,代表程序需要對接收到的整數進行操作。dest=’accumulate’指定當參數出現時需要將其結果存儲在args.accumulate中,而action=’store_const’表示當此參數出現時,const=sum會存儲在args.accumulate中,如果沒有出現,const=default的值會被存儲在args.accumulate中。

執行上述程序,傳入參數為:1 2 3 4 5,則會執行結果為:15。

三、常用參數類型

argparse模塊支持多種數據類型的參數,下面是一些常見的數據類型:

1. position(位置)

位置參數是必須提供的,它們按照它們被定義的順序從命令行讀取。例如:

parser = argparse.ArgumentParser()
parser.add_argument("source")
parser.add_argument("destination")
args = parser.parse_args()

這將解析Python程序的命令行參數,程序必須包含兩個參數(source和destination)的位置參數。執行結果為:

$ python program.py file1.txt file2.txt

2. Optional(可選)

可選參數是通過名稱而不是位置指定的。例如:

parser = argparse.ArgumentParser()
parser.add_argument("--source")
parser.add_argument("--destination")
args = parser.parse_args()

這個程序將讀取兩個可選參數–source和–destination。執行時可以不帶可選參數:

$ python program.py

或者指定一個參數:

$ python program.py --source file1.txt

3. 支持多個值

argparse還提供了一個選項,允許一個參數多次使用。例如我們在命令行上傳遞多個文件名,可以使用:

parser = argparse.ArgumentParser()
parser.add_argument("file_list", nargs="+")
args = parser.parse_args()

參數nargs=”+「允許file_list參數為多個值:

$ python program.py file1.txt file2.txt directory/*.txt

4. 布爾值

可以使用store_true / store_false選項,將程序中的布爾值參數處理為命令行選項。例如:

parser = argparse.ArgumentParser()
parser.add_argument("--debug", action="store_true")
args = parser.parse_args()

可選參數–debug現在是布爾類型的,如果提供了這個選項,Python中的args.debug將為True。否則為False。

四、處理命令行參數

在我們使用argparse程序解析了命令行參數後,我們仍然需要使用它們執行程序。下面的代碼展示了如何使用argparse來處理命令行參數:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--input", help="input file path")
parser.add_argument("--output", help="output file path")
parser.add_argument("--verbose", help="increase output verbosity", action="store_true")

args = parser.parse_args()

if args.verbose:
    print("verbose mode on")

with open(args.input, "r") as infile, open(args.output, "w") as outfile:
    for line in infile:
        outfile.write(line)
print("done")

在上述代碼中,我們聲明了三個可選參數–input、–output 和–verbose。–input和–output參數我們使用了help關鍵字為其添加描述。

在使用args.input和args.output時,需要判斷傳入的參數是否為None。通過判斷args.verbose可以在程序中開啟或關閉verbose模式,即輸出更多信息。

五、總結

本文主要介紹了Python命令行參數的基礎知識,以及使用argparse模塊解析命令行參數的方法,同時列舉了幾種常見的命令行參數類型和處理方法。熟悉這些方法可以使得Python程序的調用更加方便和靈活。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/184043.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-25 05:50
下一篇 2024-11-25 05:51

相關推薦

  • Python wordcloud入門指南

    如何在Python中使用wordcloud庫生成文字雲? 一、安裝和導入wordcloud庫 在使用wordcloud前,需要保證庫已經安裝並導入: !pip install wo…

    編程 2025-04-29
  • Ojlat:一款快速開發Web應用程序的框架

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

    編程 2025-04-29
  • Python小波分解入門指南

    本文將介紹Python小波分解的概念、基本原理和實現方法,幫助初學者掌握相關技能。 一、小波變換概述 小波分解是一種廣泛應用於數字信號處理和圖像處理的方法,可以將信號分解成多個具有…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    編程 2025-04-29

發表回復

登錄後才能評論