Eastsheng's Wiki

Python命令行解析模块:argparse

2022-09-18 10:48:28

[toc]

基本用法

  • 位置参数
1
2
3
4
5
6
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",
type=int)
args = parser.parse_args()
print(args.square**2)
  • 可选参数
1
2
3
4
5
6
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--verbosity", help="increase output verbosity")
args = parser.parse_args()
if args.verbosity:
print("verbosity turned on")
  • 短选项
1
2
3
4
5
6
7
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbose", help="increase output verbosity",
action="store_true")
args = parser.parse_args()
if args.verbose:
print("verbosity turned on")

传入多个参数

1
2
3
4
5
6
7
import argparse

parser = argparse.ArgumentParser(description='命令行中传入一个数字')
parser.add_argument('integers', type=str, nargs='+',help='传入的数字')
args = parser.parse_args()

print(args.integers)

nargs=’*’ :表示参数可设置零个或多个
nargs=’+’ :表示参数可设置一个或多个
nargs=’?’:表示参数可设置零个或一个

默认值

1
2
3
4
5
6
7
8
9
import argparse

parser = argparse.ArgumentParser(description='姓名')
parser.add_argument('--family', type=str, default='张',help='姓')
parser.add_argument('--name', type=str, default='三', help='名')
args = parser.parse_args()

#打印姓名
print(args.family+args.name)

必需参数

1
2
3
4
5
6
7
8
9
import argparse

parser = argparse.ArgumentParser(description='姓名')
parser.add_argument('--family', type=str, help='姓')
parser.add_argument('--name', type=str, required=True, default='', help='名')
args = parser.parse_args()

#打印姓名
print(args.family+args.name)

参考

[1] argparse 教程

[2] argparse模块用法实例详解