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

原创 2015年11月19日 17:02:26

直接可套用的代码样例,只需要根据实际需求增加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}

相关文章推荐

python的argparse模块add_argument详解

add_argument:读入命令行参数,该调用有多个参数 ArgumentParser.add_argument(name or flags…[, action][, nargs][, const...

Python命令行解析库argparse

python标准库推荐使用argparse模块对命令行进行解析。 创建解析器 import argparse parser = argparse.ArgumentParser()创建一...

argparse - 命令行选项与参数解析

转载:http://blog.xiayf.cn/2013/03/30/argparse/ argparse模块作为optparse的一个替代被添加到Python2.7。argpars...

python中的argparse模块(参数解析)

import argparse parse = argparse.ArgumentParser() parse.add_argument("a", help="params means") pa...

addArgument的用法和实例,大家知道吗

ConsoleOptionParser::addArgument($name, $params = array())

python模块之argparse:强大的命令行参数解析模块

python模块之argparse:强大的命令行参数解析模块 在用argparse模块之前,我一直是用optget模块,optget也比较简单好用,但是不够强大。比如说optget无法解析一个参数多...

python 获取脚本传递参数 及参数个数 检查文件 变量 是否存在 退出脚本

python获取脚本传递参数: import sys print sys.argv[0] ##脚本名 print sys.argv[1] ## 第一个参数print sys.argv ###参数...
  • ysdaniel
  • ysdaniel
  • 2012年09月27日 19:12
  • 38132

对python脚本传参数

如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys 参数个数:len(sys.argv) 脚本名:    sys.argv...

向python脚本传递参数

import sys print sys.argv[0] sys.argv[0]是python脚本的名字; 下面的例子是一个用来提取文本log.txt中含有匹配字符串的文本行,匹配字...

命令行运行Python脚本时传入参数的三种方式

三种常用的方式如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式。python script.py 0,1,2 10 python script.p...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python Argparse模块的使用例子,往python脚本传参数
举报原因:
原因补充:

(最多只允许输入30个字)