# Python的argparse庫怎么使用
## 1. 簡介
`argparse` 是 Python 標準庫中用于解析命令行參數的模塊,它能夠輕松地編寫用戶友好的命令行界面。相比于手動解析 `sys.argv`,`argparse` 提供了更強大、更靈活的功能,包括:
- 自動生成幫助和使用信息
- 支持位置參數和可選參數
- 參數類型檢查和自動轉換
- 子命令支持
## 2. 基本用法
### 2.1 創建解析器
首先需要創建一個 `ArgumentParser` 對象:
```python
import argparse
parser = argparse.ArgumentParser(description='這是一個示例程序')
description
參數用于簡要描述程序的用途,會顯示在幫助信息中。
使用 add_argument()
方法添加參數:
parser.add_argument('filename', help='輸入文件名')
parser.add_argument('-v', '--verbose', help='顯示詳細信息', action='store_true')
-
的參數是位置參數(必須提供)-
或 --
的是可選參數help
參數用于描述參數的用途action='store_true'
表示當指定該選項時,參數值為 True使用 parse_args()
方法解析參數:
args = parser.parse_args()
print(args.filename)
if args.verbose:
print("詳細模式已開啟")
parser.add_argument('input', help='輸入文件')
parser.add_argument('-o', '--output', help='輸出文件')
可以指定參數類型:
parser.add_argument('--count', type=int, help='重復次數')
parser.add_argument('--level', type=int, default=1, help='處理級別')
parser.add_argument('--numbers', nargs='+', type=int, help='一組數字')
nargs
可以是:
- ?
- 0或1個值
- *
- 0或多個值
- +
- 1或多個值
- 數字 - 確切數量的值
group = parser.add_mutually_exclusive_group()
group.add_argument('--fast', action='store_true', help='快速模式')
group.add_argument('--slow', action='store_true', help='慢速模式')
subparsers = parser.add_subparsers(dest='command', help='子命令')
# 創建子命令 'init'
parser_init = subparsers.add_parser('init', help='初始化項目')
parser_init.add_argument('--name', required=True, help='項目名稱')
# 創建子命令 'build'
parser_build = subparsers.add_parser('build', help='構建項目')
parser_build.add_argument('--debug', action='store_true', help='調試模式')
class CustomAction(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
print(f"處理參數: {self.dest}={values}")
setattr(namespace, self.dest, values.upper())
parser.add_argument('--custom', action=CustomAction)
group = parser.add_argument_group('輸出選項')
group.add_argument('--output', help='輸出文件')
group.add_argument('--format', choices=['json', 'xml'], default='json')
import argparse
parser = argparse.ArgumentParser(description='文件處理工具')
parser.add_argument('input', help='輸入文件路徑')
parser.add_argument('-o', '--output', help='輸出文件路徑')
parser.add_argument('-v', '--verbose', action='store_true', help='詳細輸出')
parser.add_argument('--encoding', default='utf-8', help='文件編碼')
parser.add_argument('--lines', type=int, help='處理的行數')
args = parser.parse_args()
if args.verbose:
print(f"正在處理文件: {args.input}")
if args.output:
print(f"輸出到: {args.output}")
parser = argparse.ArgumentParser(description='簡單計算器')
subparsers = parser.add_subparsers(dest='operation', required=True)
# 加法
add_parser = subparsers.add_parser('add', help='加法運算')
add_parser.add_argument('numbers', nargs='+', type=float, help='要相加的數字')
# 乘法
mul_parser = subparsers.add_parser('mul', help='乘法運算')
mul_parser.add_argument('numbers', nargs='+', type=float, help='要相乘的數字')
args = parser.parse_args()
if args.operation == 'add':
result = sum(args.numbers)
print(f"結果: {result}")
elif args.operation == 'mul':
result = 1
for num in args.numbers:
result *= num
print(f"結果: {result}")
argparse
是 Python 中處理命令行參數的標準方法,它提供了:
掌握 argparse
可以讓你輕松創建專業級的命令行工具,提高腳本的可用性和用戶體驗。
“`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。