初见argparse 首先来看看argparse的基本用法,下面是最简单的一个例子。...required - 此命令行选项是否可省略 (仅选项可用)。 help - 一个此选项作用的简单描述。 metavar - 在使用方法消息中使用的参数值示例。...参数名 方法的第一个参数是参数名称,可以是一个字符串(name)或者是-开头的一组字符串(flags),前者是位置参数,会按照添加的顺序被读取;后者是关键字参数,可以以任意顺序指定。...当指定了foo参数,但没有指定后面的值时,会使用const的值。 当指定了foo参数和后面的值时,会使用我们指定的值。 type 这个是指定参数类型的,int、float、str那些。...parse_args方法 编辑好了参数,就可以调用parse_args方法来处理参数了,它会返回一个命名空间对象,包含了解析之后的参数。
前言 在第一篇“初探 argparse”的文章中,我们初步掌握了使用 argparse 的四部曲,对它有了一个基本的体感。但是它具体支持哪些类型的参数?这些参数该如何配置?...想象一下,当我们在命令行输入一串参数后,对于不同类型的参数是希望做不同的处理的。那么 参数动作 其实就是告诉解析器,我们希望对应的参数该被如何处理。...=str) >>> parser.parse_args(['--int', '--str']) Namespace(int=[], str=[]) 指定...argparse 所支持的参数类型多种多样,可以是 int、float、bool等,比如: >>> parser.add_argument('-i', type=int) >>> parser.add_argument...至少,用现在学到的知识来完成简单的命令行工具已经不再话下了。
方法的type参数理论上可以是任何合法的类型, 但有些参数传入格式比较麻烦,例如list,所以一般使用bool, int, str, float这些基本类型就行了,更复杂的需求可以通过str传入,然后手动解析...,分别对应str, int,bool,float类型的参数。...脚本中需要定义一个接收一个参数的main方法:def main(_):,这个传入的参数是脚本名,一般用不到, 所以用下划线接收。...以batch_size参数为例,传入这个参数时使用的名称为–batch_size,也就是说,中划线不会像在argparse 中一样被解析成下划线。...从它的签名来看,它也是可以自己指定需要执行的方法的,不一定非得叫main: run( main=None, argv=None ) 5 . tf.app.flags只是对argpars的简单封装
() 解释:首先导入该模块;然后创建一个解析对象;然后向该对象中添加你要关注的命令行参数和选项, 每一个add_argument方法对应一个你要关注的参数或选项;最后调用parse_args()方法进行解析...表示只用一个,'*'表示0到多个,'+'表示至少一个 default:默认值 type:参数的类型,默认是字符串string类型,还有float、int等类型 help:和ArgumentParser方法中的参数作用相似...'B', 'C', 0]) required:通常-f这样的选项是可选的,但是如果required=True那么就是必须的了 nsrgs 用来指定参数的个数,可以是1,2,3....也可以是...零个或一个 * 零个或多个 + 一个或多个 创建子parse,每个子parse对应自己的输入参数 import argparse # sub-command functions...Actions action 是 parse_args() 方法的参数之一,它指示 optparse 当解析到一个命令行参数时该如何处理。
fromfile_prefix_chars 有些时候,先举个例子,当处理一个特别长的参数列表的时候,把它存入一个文件中而不是在命令行打出来会很有意义。...required - 此命令行选项是否可省略 (仅选项可用)。 help - 一个此选项作用的简单描述。 metavar - 在使用方法消息中使用的参数值示例。...('--str --int'.split()) Namespace(types=[, ]) 'count' - 计算一个关键字参数出现的数目或次数。...确保这些属性被定义的最简单的方式是调用 Action.__init__。...在最简单的情况下,可选项和其值作为两个不同的参数传递进去: >>> parser = argparse.ArgumentParser(prog='PROG') >>> parser.add_argument
确保定义这些属性的最简单方法是调用action . _init__。...在最简单的情况下,该选项及其值作为两个单独的参数传递:>>> parser = argparse.ArgumentParser(prog='PROG')>>> parser.add_argument('...例如,命令行参数-1可以是指定选项的尝试,也可以是提供位置参数的尝试。...将函数与这样的操作关联通常是处理每个子解析器的不同操作的最简单方法。...允许使用+和/这样的替代选项前缀。处理零个或多个样式参数和一个或多个样式参数。生成更多信息的使用消息。为自定义类型和操作提供更简单的接口。
python项目中通用的配置文件格式有py.ini,json,yml。本文对这些常用形式的配置进行详细讲解。py配置使用.py进行配置对于python项目是最简单的形式,不用任何解析操作直接使用。...简单的py配置和使用比较简单,直接上代码:新建conf_py.pyarg_int = 123arg_str = "123"arg_list = [1,2,3]arg_dic = {"a":1,"b":2...通过ConfigParser解析参数,cfg='conf.ini', mode='release' 4. 代码中通过args.mode得到启动脚本设置对mode以上是最简单的命令行脚本启动设置。...required - 此命令行选项是否可省略 (仅选项可用)。 help - 一个此选项作用的简单描述。 metavar - 在使用方法消息中使用的参数值示例。...def parse_args_action(): # action命名参数指定了这个命令行参数应当如何处理。
1. sys.argv 解析Python中命令行参数的最传统的方法是通过sys.argv。Demo如下: #!...,灵活性很差,同时解析出来的参数都是str类型。...但在编写简单脚本,参数较少且固定时比较方便。 2. argparse argparse模块是Python内置的参数解析模块,使用起来比较简单且功能强大。Demo如下: #!...'> val_lmdb 100 0.01 ArgumentParser类创建时的参数如下: prog - 程序的名字(默认...default - 如果命令行中没有出现该参数时的默认值。 type - 命令行参数应该被转换成的类型。 choices - 参数可允许的值的一个容器。
它的基本使用流程如下: import argparse # 导入包 parser = argparse.ArgumentParser() # 创建对象 parser.add_argument() # 添加参数...args = parser.parse_args() # 解析添加的参数 print(args) #获得传入的参数 2.1.1 argparse.ArgumentParser()方法 这个函数用于新建一个...("输入命令行参数的名称") 2.1.2 add_argument() 方法 此方法用于添加命令行参数,基础写法为: parser = argparse.ArgumentParser() # 创建对象...("--z", type=int, default=3, help="可选参数") args = parser.parse_args() print("z = " + str(args.z)) 在命令行中输入...(x, ord=None, axis=None, keepdims=False) x: 表示矩阵(也可以是一维) ord:范数类型 参数 说明 计算方法 默认 二范数: ord=2 二范数:
下面进入有趣的部分,我们希望在运行程序时从命令行传递这三个变量。 步骤4:从命令行解析参数 从命令行解析参数的最简单方法是使用sys.argv,它是传递给Python脚本的命令行参数列表。...注意,在CLI中只使用sys.argv是完全可以的。 步骤5:介绍argparse库 argparse是一个标准的Python库,因此不需要专门安装它。...对于(Windows)计算机上的文件路径,由于有反斜杠/,Python不喜欢未处理的文件路径;对于页面,整数列表[1,2,3]比字符串“1,2,3”更有意义,所以我们必须处理这些参数的格式。...__name__是Python中的一个特殊变量。当源文件作为主程序执行时(即从IDLE或命令行运行脚本),__name__将被设置为字符串”__main__”。...应该会看到与下面类似的输出,并且在程序运行后,在同一文件夹中应该会有一个名为“3_pages.PDF”的PDF文件。 图3 argparse的优点之一是它自动生成帮助消息。
argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。argparse模块的作用是用于解析命令行参数。...最基础的,从一个最简单的程序开始: import argparse parser = argparse.ArgumentParser() 运行结果: $ python 1.py $ 定位参数: import...' and 'int' 必须将代码增加type=你需要的类型(像这里需要int类型): 1 import argparse 2 parser=argparse.ArgumentParser() 3 parser.add_argument...当然也可以像上面一样了; 参数冲突: 迄今为止,我们已经使用到了[argparse.ArgumentParser][6]的两个方法,来看看他的另一个方法add_mutually_exclusive_group...下面来修改下程序以对这个新方法有更多的了解:我们将加入参数--quiet,它和参数--verbose冲突,不能同时指定: 1 import argparse 2 parser = argparse.ArgumentParser
,灵活性很差,同时解析出来的参数都是 str 类型。...但在编写简单脚本,参数较少且固定时比较方便。...,将参数规范中定义的一个值保存到一个列表; count,存储遇到的次数;此外,也可以继承 argparse.Action 自定义参数解析; nargs – 应该读取的命令行参数个数,可以是具体的数字,或者是...1 或多个参数。...choices – 参数可允许的值的一个容器。 required – 可选参数是否可以省略 (仅针对可选参数)。
:gear: options.py: 它包含argparse对象。用于在命令行输入参数。 :dash: kmeans_gpu.py: 它包含经GPU加速的Kmeans算法,来自HSAN。...:tropical_drink: 细节 以下是可修改的argparse参数的细节: 标记 参数 短选项 描述 类型/动作 默认值 1 --pretrain -P 是否是预训练,如果是请使用’--pretrain...' str "tensor" 3 --label -L 标签数据加载时的数据类型, 可以是'tensor'或'npy',默认是'npy' str "npy" 3 --adj -A 邻接矩阵加载时的数据类型..., 可以是'tensor'或'npy',默认是'tensor' str "tensor" 1 --seed -S The random seed....此外,在编写代码过程中,如果遇到一些参数是可变的,可参考explanation.txt文件中提供的argparse对象的属性,或者在train.py中直接定义argparse对象的属性并赋初值,而不需要修改
- 该方法返回值由两个元素组成: 第一个是 (option, value) 元组的列表。 第二个是参数列表包含那些没有'-'或'--'的参数。...- default : 缺省值 - type : 应将命令行参数转换为的类型,str / int / float - type=argparse.FileType('r') / type=argparse.FileType...- metavar :使用消息中参数的名称,当ArgumentParser生成帮助消息时,它需要某种方法来引用每个期望的参数。...parser.add_argument('--bar',metavar=['XXX','YYYY']) #它需要某种方法来引用每个期望的参数。...port = int(args.Port) #由于参数指定的类型是str所以这里转成int trynum = args.Trynum #TestArgumentDemo: error
2.1、argparse argparse 的设计理念就是提供给你最细粒度的控制,你需要详细地告诉它参数是选项参数还是位置参数、参数值的类型是什么、该参数的处理动作是怎样的。...对比与 argparse: 对于更为复杂的命令程序,元信息的定义上 docopt 会更加简单 然而在业务逻辑的处理上,由于 argparse 在一些简单参数的处理上会更加便捷(比如示例中的情形),相对来说...使得我们可以明确了解参数会怎么处理,这在有大量参数时显得尤为重要,这边是 click 相比于 argparse 和 docopt 最明显的优势。...2.4、fire fire 则是用一种面向广义对象的方式来玩转命令行,这种对象可以是类、函数、字典、列表等,它更加灵活,也更加简单。...['1', '2', '3', '--sum'] 参数,处理函数为 sum 函数,其结果为 6 fire.Fire(calculator) 从上述示例可以看出,fire 提供的方式无疑是最简单、并且最
简介argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广使用方法导入...argparse创建 ArgumentParser 对象,可添加描述(description)信息,表明这个对象的功能添加参数处理,可添加多个import argparsedef get_parser...,需要加在参数上 如:python demo.py --name zcyn:参数简称,可与–name同时存在name 或者 dest=name:参数名,提供参数占位符,必须填写,否则报错。...此类设置违背人的常识,应避免使用4、type:用于类型检查和类型转换;参数类型,默认是str ,如果需要int ,type=int即可5、choices:参数的值只能在几个选项中选择:# file-name...0或1个参数‘*’0或多个参数‘+’1或者多个参数# file-name: nargs.pyimport argparsedef get_parser(): parser = argparse.ArgumentParser
使用sys库的暴力处理方法 使用sys库中的argv方法事实上可以可以暴力地读取出所有的python运行参数,给出代码范例如下: import sys if __name__ == "__main__...2. argparse库的一般使用方法 argparse库是python自带的一种用于实现脚本的参数传递的函数库。...基本类型参数 argparse库的基本参数类型主要包含str、int以及float三类,或者至少,我常用的包含上述三类。。。...函数类型参数 更加一般性的,我们也可以令type参数等于一个方法,然后用其来替我们做一定的数据检查以及数据处理。...当然,argparse只是进行外部传参的其中一个常用库而已,事实上,使用tf.flags也可以完成相同的功能,在机器学习领域,它或许会比argparse更为常用,但这就是另外一个故事了,也许之后我会再写一个博客来介绍一下
而今天要介绍的 fire则是用一种面向广义对象的方式来玩转命令行,这种对象可以是类、函数、字典、列表等,它更加灵活,也更加简单。 本系列文章默认使用 Python 3 作为解释器进行讲解。...设置所需的模块和变量,使得实用 REPL 更加容易 通过如下命令可快速安装 fire 库: pip install fire 三、快速开始 回忆下使用 argparse、docopt 和 click...再看看 Python 中的类,一个类是不是可以对应一个命令行程序,而类中的每个实例方法就可以对应子命令,实例方法中的参数就是对应子命令的参数和选项。...NAME hello.py SYNOPSIS hello.py FLAGS --name=NAME 3.2 使用类 使用函数是最简单的方式,如果我们想以更有组织的方式来实现...使用 fire.Fire(Calculator) 即可非常简单快速地实现命令功能,这个命令行支持两个子命令 double 和 triple,位置参数 NUMBER 或选项参数 --number 可在命令行中执行下列命令
不过可以加上-h 或 --help 运行一下,会显示我们自定义的description的内容,以及默认的help的内容 通过add_argument()方法添加各种参数 添加参数的过程就是,反复调用add_argument...()方法,一次加入一个参数。...此时再次使用-h 或 --help 看一个帮助,会自动加上添加的参数,但是只有参数名,并没有说明 添加参数说明 调用add_argument()方法是,设置关键参数help,来添加参数说明 import...# 看看整个的内容 此时再看一下help 设置参数的数据类型 所有的参数输入都是str类型,如果需要使用int类型的参数,通过关键参数type可以方便的实现 import argparse parser...另外也可以是指定一个常量,类似action='store_const', const="Test" ,那么没有-v 值是None,有-v 的值就是"Test" ,此时-v后面不能跟值了,如果有则会被当做是位置参数处理
领取专属 10元无门槛券
手把手带您无忧上云