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...
  • u013177568
  • u013177568
  • 2017年03月16日 18:37
  • 4764

python中argparse

在很多编程语言中,运行程序可以直接使用function(a,b,……)运行程序,但是在python中就无法实现,那么我们如何在命令行中传递参数呢?在python的中,有一个argparse包,能够实现...
  • ali197294332
  • ali197294332
  • 2016年04月18日 20:50
  • 4816

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

python模块之argparse:强大的命令行参数解析模块 在用argparse模块之前,我一直是用optget模块,optget也比较简单好用,但是不够强大。比如说optget无法解析一个参数多...
  • u011296415
  • u011296415
  • 2013年07月31日 11:27
  • 2279

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

FROM: https://docs.python.org/2/howto/argparse.html#id1 http://blog.itpub.net/26250550/viewspace-12...
  • xiaoxinyu316
  • xiaoxinyu316
  • 2015年06月23日 23:41
  • 2801

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

转载:http://blog.xiayf.cn/2013/03/30/argparse/ argparse模块作为optparse的一个替代被添加到Python2.7。argpars...
  • yugongpeng_blog
  • yugongpeng_blog
  • 2015年06月30日 11:31
  • 5579

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

ConsoleOptionParser::addArgument($name, $params = array())
  • u014036073
  • u014036073
  • 2014年05月01日 11:05
  • 1630

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

import argparse parse = argparse.ArgumentParser() parse.add_argument("a", help="params means") pa...
  • mydear_11000
  • mydear_11000
  • 2016年04月13日 11:24
  • 4387

parser.add_argument中的action

有一个比较有意思的传参方式: 比如在 demo1.py 中指定 action=’store_true’的时候: parser.add_argument(‘–is_train’, actio...
  • zjm750617105
  • zjm750617105
  • 2017年08月02日 10:46
  • 449

Python命令行解析库argparse

python标准库推荐使用argparse模块对命令行进行解析。 创建解析器 import argparse parser = argparse.ArgumentParser()创建一...
  • djd1234567
  • djd1234567
  • 2015年04月25日 22:05
  • 1841

python命令行解析之parse_known_args()函数和parse_args()

在python中,命令行解析的很好用, 首先导入命令行解析模块 import argparse import sys 然后创建对象 parse=argparse.ArgumentParser...
  • mameng1
  • mameng1
  • 2017年01月13日 16:31
  • 7068
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python Argparse模块的使用例子,往python脚本传参数
举报原因:
原因补充:

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