Python 3 学习笔记

人生苦短,我用 Python。

👉文章列表
Python 3 学习笔记 ⏬ 数字 数字的进制转换 集合 set 路径处理 sys.path 模块 使用 SimpleHttpServer 快速构建静态文件服务 包管理器 pip 的使用 virtualenv 的使用 CRC32 BeautifulSoup 使用指南 使用 BeautifulSoup 去除 HTML 中的注释 PyMySQL 使用指南 json 处理 yaml 处理 使用 getopt 库解析命令行参数 使用 argparse 库解析命令行参数 Jinja2 模板引擎

Python 3 : 使用 argparse 库解析命令行参数



命令行参数会存放在 sys.argv 中, sys.argv 是一个 list。argparse 是一个内置的参数解析库。

官方文档

argparse 的使用

示例1: 使用纯单词标识必选参数

# 文件名: test_argparse.py

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('filename')

args = parser.parse_args()

print(args.filename)

执行示例:

▶ python3 test_argparse.py
usage: test_argparse.py [-h] filename
test_argparse.py: error: the following arguments are required: filename

▶ python3 test_argparse.py -h
usage: test_argparse.py [-h] filename

positional arguments:
  filename

optional arguments:
  -h, --help  show this help message and exit

▶ python3 test_argparse.py tmp.txt
tmp.txt

默认会有一个 -h 参数用于展示帮助文档。

add_argument 一个不以-开头的纯单词时,代表着这是一个必填的命令行参数。

示例2: 使用纯单词标识多个必选参数

# 文件名: test_argparse.py

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('filename')
parser.add_argument('color')

args = parser.parse_args()

print(args.filename)
print(args.color)

使用示例:

▶ python3 test_argparse.py -h
usage: test_argparse.py [-h] filename color

positional arguments:
  filename
  color

optional arguments:
  -h, --help  show this help message and exit

▶ python3 test_argparse.py tmp.txt red
tmp.txt
red

示例3: 为参数自定义帮助文档

在 add_arguments 中用 help 参数指定命令行参数说明。

# 文件名: test_argparse.py

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('filename', help='要处理的文件名')
parser.add_argument('color', help='颜色')

args = parser.parse_args()

print('文件名', args.filename)
print('颜色', args.color)

执行示例:

▶ python3 test_argparse.py -h
usage: test_argparse.py [-h] filename color

positional arguments:
  filename    要处理的文件名
  color       颜色

optional arguments:
  -h, --help  show this help message and exit

▶ python3 test_argparse.py tmp.txt red
文件名 tmp.txt
颜色 red

示例4: 使用 - 修饰单词标识可选参数

# 文件名: test_argparse.py

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-f', '--filename', help='要处理的文件名')
parser.add_argument('-c', '--color', help='颜色')

args = parser.parse_args()

print('文件名:', args.filename)
print('颜色:', args.color)

执行示例:

▶ python3 test_argparse.py -h
usage: test_argparse.py [-h] [-f FILENAME] [-c COLOR]

optional arguments:
  -h, --help            show this help message and exit
  -f FILENAME, --filename FILENAME
                        要处理的文件名
  -c COLOR, --color COLOR
                        颜色

▶ python3 test_argparse.py -f tmp.txt
文件名: tmp.txt
颜色: None

▶ python3 test_argparse.py -f tmp.txt --color red
文件名: tmp.txt
颜色: red

示例5: 使用default指定可选参数默认值

# 文件名: test_argparse.py

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-f', '--filename', help='要处理的文件名')
parser.add_argument('-c', '--color', help='颜色', default='默认颜色')

args = parser.parse_args()

print('文件名:', args.filename)
print('颜色:', args.color)

执行示例:

▶ python3 test_argparse.py -f tmp.txt
文件名: tmp.txt
颜色: 默认颜色

示例6: 使用 action='store_true' 让参数的出现与否代表布尔值

# 文件名: test_argparse.py

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--has-something', action='store_true')

args = parser.parse_args()

print('has-something:', args.has_something)

执行示例:

▶ python3 test_argparse.py
has-something: False

▶ python3 test_argparse.py --has-something
has-something: True

action 默认是 store,其他取值还有store_truestore_falsestore_constappend 等。


( 本文完 )

文章目录