Python命令行工具 Python argparse模塊使用教程

argparse模塊通過創建argumentparser對象處理命令行參數。首先導入模塊并創建解析器,使用add_argument()定義參數類型,如位置參數parser.add_argument(“echo”)和可選參數parser.add_argument(“–verbose”)。其次區分參數形式,位置參數無前綴且必填,如python script.py hello;可選參數帶–或-前綴且非必須,如–verbose或-v。接著設置參數類型、默認值與選項,如type=int指定整型,default=”result.txt”設定默認輸出文件名,choices=[“fast”, “slow”]限制選項范圍。最后支持多值或多現參數,如nargs=”+”接受多個數值,action=”count”統計出現次數。掌握這些基本用法后,可根據需求逐步深入使用。

Python命令行工具 Python argparse模塊使用教程

在寫 python 腳本時,經常需要處理命令行參數。argparse 模塊就是用來做這件事的標準庫之一,用起來簡單又靈活。下面我們就來聊聊它的基本用法和一些實用技巧。


如何開始使用 argparse

首先,你需要導入 argparse 模塊,并創建一個 ArgumentParser 對象。這個對象會幫你解析命令行參數。

import argparse  parser = argparse.ArgumentParser(description='這是一個簡單的示例')

這里的關鍵是 add_argument() 方法,它用來定義你希望接收的參數。比如:

立即學習Python免費學習筆記(深入)”;

  • 添加一個位置參數(必須提供的參數):

    parser.add_argument("echo", help="打印你輸入的內容")
  • 添加一個可選參數:

    parser.add_argument("--verbose", help="啟用詳細輸出模式", action="store_true")

然后調用 parse_args() 就能獲取用戶輸入的參數了:

args = parser.parse_args() print(args.echo) if args.verbose:     print("詳細模式已開啟")

怎么區分位置參數和可選參數

位置參數是你運行腳本時必須輸入的參數,順序固定。比如:

python script.py hello

這里的 hello 就是一個位置參數。

可選參數則是帶 — 或 – 前綴的參數,不是必須的。比如:

python script.py --verbose hello

還可以給可選參數加短格式,比如:

parser.add_argument("-v", "--verbose", help="啟用詳細模式", action="store_true")

這樣用戶既可以寫 –verbose,也可以簡寫成 -v。


參數類型與默認值怎么設置

argparse 默認把參數當作字符串處理,但你可以指定類型:

parser.add_argument("square", type=int, help="計算平方數")

如果你希望某個參數有默認值,可以這樣寫:

parser.add_argument("--output", default="result.txt", help="輸出文件名")

這樣即使用戶不提供 –output,程序也能用默認值繼續執行。

還有些時候,你想讓參數只能從幾個選項中選,可以用 choices:

parser.add_argument("--mode", choices=["fast", "slow"], default="fast")

處理多個參數或重復參數

如果你想支持多個值的參數,比如讓用戶輸入多個數字:

parser.add_argument("--numbers", nargs="+", type=int)

這樣就能接受像 –numbers 1 2 3 這樣的輸入。

如果參數可以出現多次,比如日志級別可以多次傳入來增加等級:

parser.add_argument("-v", "--verbose", action="count", default=0)

那么 -v 是一次,-vv 是兩次,適合控制日志級別。


基本上就這些。argparse 的功能很全,用的時候不需要一開始就掌握所有特性,先學會最常用的幾種方式,遇到復雜需求再查文檔也不遲。關鍵是理解參數類型、可選參數、默認值這些概念,剩下的就是多練多用。

以上就是Python命令行

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享