Python脚本传参(argparse模块)2022-08-23

2022-08-22  本文已影响0人  黄甫一

Python传参

import sys
input=sys.argv[1]
print(input)
import argparse
parser = argparse.ArgumentParser(description='Test scripts.')
parser.add_argument('-i', '--input', type=str, required=True,metavar='input_value',help='input test',default=None)
args = parser.parse_args()
print(args.input)

Python使用argparse模块传参

Python系统自带的传参用到sys模块,第一个参数是sys.argv[1],第二个参数是sys.argv[2]。如果只有一两个参数可以使用这种方法,但是如果参数较多还是用有名的参数比较妥。

第一步,构建参数对象

import argparse
parser = argparse.ArgumentParser(description='Process some integers.')

常用的参数有:脚本描述description,脚本名称prog,与描述description类似的epilog(再help界面description内容显示在前面,epilog内容显示在后面),使用方法usage默认自动从参数中获取使用方法,也可以自定义,add_help是否添加帮助参数-h--help(默认为True),其它基本用不上。一般只需要传入description参数进行描述,其它用默认即可。
感兴趣可以到官网查看参数的详细完整介绍,所有参数如下:

class argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True)


第二步,使用add_argument添加需要传入的参数信息

parser.add_argument('--sum', dest='accumulate', action='store_const',
                    const=sum, default=max,
                    help='sum the integers (default: find the max)')

常用参数有:

完整参数列表如下:

ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])


第三步,使用parse_args获取参数列表

args = parser.parse_args()

那怎么获取参数呢?

input=args.input

如果定义参数的时候既有短名又有长名,则用长名,如果只有短名,则用短名,例如添加参数的时候有-i和--input,则用args.input,如果只有-i,则可以用args.i。

在Python控制台传参的方法:

parser.parse_args('a b --foo x y --bar 1 2'.split())

脚本使用示例

把以下代码写进脚本test.py中:

import argparse
parser = argparse.ArgumentParser(description='Test scripts.')
parser.add_argument('-i', '--input', type=str, required=True,metavar='', help='input test',default=None)
#添加位置参数,实际应用中可以不加这个
parser.add_argument('bar',default=None)
args = parser.parse_args()

print(args.input)
print(args.bar)

接着运行以下脚本:

#查看帮助文档
 ~ $ python test.py -h
usage: test.py [-h] -i  bar

Test scripts.

positional arguments:
  bar

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

#运行脚本
 ~ $ python test.py  -i test oo
test
oo
 ~ $ python test.py oo --input test
test
oo

上一篇下一篇

猜你喜欢

热点阅读