关闭

Python Argparse模块的使用例子,往python脚本传参数

标签: pythonArgparse
1581人阅读 评论(0) 收藏 举报
分类:

直接可套用的代码样例,只需要根据实际需求增加add_argument,添加可选参数和必选参数:

Argparse模块官方文档说明:https://docs.python.org/2/howto/argparse.html#id1

import argparse,sys

if len(sys.argv) == 1:
    sys.argv.append("-h")

parser = argparse.ArgumentParser()
parser.add_argument('-s',dest='nr_thread',default = 12,type=int)
parser.add_argument('-cvt_path',type = str)
parser.add_argument('src_path')
parser.add_argument('dst1_path')
parser.add_argument('dst2_path')
print (parser.parse_args())
args = vars(parser.parse_args())
print (args)

解释:

1、 parser.add_argument('-s',dest='nr_thread',default = 12,type=int):添加可选参数s(参数名),参数的另一个名字nr_thread,程序内使用,默认值是12,类型是int。

2、parser.add_argument('-cvt_path',type = str):添加可选参数 cvt_path,其类型是str。

3、parser.add_argument('src_path'):添加必选参数src_path。

可选参数,调用python脚本时,可传可不传,传参数的写法是(-cvt_path converters/pre-a.py)。必选参数,调用python脚本时,必须传进去。

args = vars(parser.parse_args()):将参数列表转成字典的形式,方便程序使用

几个使用例子:

命令:

python prog.py tr.csv tr.gbdt.dense tr.gbdt.sparse-cvt_path converters/pre-a.py 

输出结果:

Namespace(cvt_path='converters/pre-a.py', dst1_path='tr.gbdt.dense', dst2_path='tr.gbdt.sparse', nr_thread=12, src_path='tr.csv')
{'nr_thread': 12, 'cvt_path': 'converters/pre-a.py', 'dst2_path': 'tr.gbdt.sparse', 'src_path': 'tr.csv', 'dst1_path': 'tr.gbdt.dense'}


命令:

python prog.py tr.csv tr.gbdt.dense tr.gbdt.sparse -cvt_path converters/pre-a.py -s 2

输出结果:

Namespace(cvt_path='converters/pre-a.py', dst1_path='tr.gbdt.dense', dst2_path='tr.gbdt.sparse', nr_thread=2, src_path='tr.csv')
{'src_path': 'tr.csv', 'nr_thread': 2, 'dst1_path': 'tr.gbdt.dense', 'cvt_path': 'converters/pre-a.py', 'dst2_path': 'tr.gbdt.sparse'}


命令:

可选参数一个都不传进去

python prog.py tr.csv tr.gbdt.dense tr.gbdt.sparse

Namespace(cvt_path=None, dst1_path='tr.gbdt.dense', dst2_path='tr.gbdt.sparse', nr_thread=12, src_path='tr.csv')
{'cvt_path': None, 'src_path': 'tr.csv', 'dst2_path': 'tr.gbdt.sparse', 'dst1_path': 'tr.gbdt.dense', 'nr_thread': 12}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:322407次
    • 积分:5454
    • 等级:
    • 排名:第5085名
    • 原创:227篇
    • 转载:42篇
    • 译文:0篇
    • 评论:57条
    最新评论