命令行参数会存放在 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_true
、store_false
、store_const
、append
等。