GeophyAI

Python与地球物理数据处理

0%

Python之import argparse

Python之命令行解析—argparse

terminal 执行 .py 文件经常遇到。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ import argparse
$ Aparser = argparse.ArgumentParser(
prog=None, #给程序起名儿,默认为sys.argv[0]
usage=None, #参数用法备注,默认从参数中自动生成
description=None, #程序目的备注,显示在help之前
epilog=None, #参数描述后跟着的解释,显示在help之后
parents=[], #由ArgumentParser对象组成的列表,它们的arguments选项会被包含到新ArgumentParser对象中。(类似于继承)
formatter_class=<class 'argparse.HelpFormatter'>, #help输出格式
prefix_chars='-', #每个参数的前缀,默认为‘- arg’
fromfile_prefix_chars=None, #前缀字符,放置在文件名之前
argument_default=None, #没用到
conflict_handler='error', #冲突解决,保持默认
add_help=True, #是否增加-h/-help选项 (默认为True)。设为False时,help信息里面不再显示-h –help信息.
allow_abbrev=True, #允许较长的参数名称使用缩写
)

测试代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
##aarparse.py:测试argparse
##aarparse.py:测试argparse
import argparse
parser = argparse.ArgumentParser(prog = '我叫测试程序', description='测试argparse模块')
parser.add_argument('--第一个参数', metavar = '<参数备注>', default = 1996,
help='显示第一个参数的用处', type = int)
parser.add_argument('--第二个参数', metavar = '<参数备注>',
help='显示第二个参数的用处', type = int)
parser.add_argument('--third_parameter', type = str, default = 'input', help = 'what will third_parameter do?')
parser.add_argument('--choices', type = int, default = 1 , choices =['1','3','8'], help = 'choose a number from chioces')
args = parser.parse_args()
if args.第一个参数 == 2020:
print('今年是2020年。')
else:
print('今年是' + str(args.第一个参数) + '年。')
print('choices = ' + str(args.choices))

测试结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ python aarparse.py -h
usage: 我叫测试程序 [-h] [--第一个参数 <参数备注>] [--第二个参数 <参数备注>]
[--third_parameter THIRD_PARAMETER] [--choices {1,3,8}]

测试argparse模块

optional arguments:
-h, --help show this help message and exit
--第一个参数 <参数备注> 显示第一个参数的用处
--第二个参数 <参数备注> 显示第二个参数的用处
--third_parameter THIRD_PARAMETER
what will third_parameter do?
--choices {1,3,8} choose a number from chioces
$ python aarparse.py
今年是1996年。
choices = 1
$ python aarparse.py --第一个参数 2020 --choices 3
今年是2020年。
choices = 3