python命令行解析_python命令行解析函数

sys.argv

在终端运行python 1.py hahah

importsysprint(sys.argv) #['1.py', 'hahah']

argparse

Python的命令行解析模块,这是一个python的内置库,通过在程序中我们定义好的参数,argparse将会从sys.argv中解析出这些参数,并自动生成帮助和使用信息。

argparse的简单使用

创建ArgumentParser()对象

调用add_argument()方法添加参数

使用parse_args()解析添加的参数

importargparse

parser=argparse.ArgumentParser()

parser.add_argument('integer', type=int, help='display an integer')

args=parser.parse_args()print(args.integer)

将上面的代码保存为文件 argparse_usage.py,在终端运行,结果如下:

$ python argparse_usage.py

usage: argparse_usage.py [-h] integer

argparse_usage.py: error: too few arguments

$ python argparse_usage.py abcd

usage: argparse_usage.py [-h] integer

argparse_usage.py: error: argument integer: invalid int value:'abcd'$ python argparse_usage.py-h

usage: argparse_usage.py [-h] integer

positional arguments:

integer display an integer

optional arguments:-h, --help show this help message andexit

$ python argparse_usage.py10

10

定位参数

importargparse

parser=argparse.ArgumentParser()

parser.add_argument("square", help="display a square of a given number", type=int)

args=parser.parse_args()print(args.square**2)

将上面的代码保存为文件 argparse_usage.py,在终端运行,结果如下:

$ python argparse_usage.py 9

81

可选参数

可选参数就是命令行参数是可选的

importargparse

parser=argparse.ArgumentParser()

parser.add_argument("--square", help="display a square of a given number", type=int)

parser.add_argument("--cubic", help="display a cubic of a given number", type=int)

args=parser.parse_args()ifargs.square:print args.square**2

ifargs.cubic:print args.cubic**3

将上面的代码保存为文件 argparse_usage.py,在终端运行,结果如下:

$ python argparse_usage.py --h

usage: argparse_usage.py [-h] [--square SQUARE] [--cubic CUBIC]

optional arguments:-h, --help show this help message andexit--square SQUARE display a square of a given number--cubic CUBIC display a cubic of a given number

$ python argparse_usage.py--square 8

64$ python argparse_usage.py--cubic 8

512$ python argparse_usage.py8usage: argparse_usage.py [-h] [--square SQUARE] [--cubic CUBIC]

argparse_usage.py: error: unrecognized arguments:8$ python argparse_usage.py#没有输出

混合使用

定位参数和选项参数可以混合使用,看下面一个例子,给一个整数序列,输出它们的和或最大值(默认):

importargparse

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

parser.add_argument('integers', metavar='N', type=int, nargs='+',

help='an integer for the accumulator')

parser.add_argument('--sum', dest='accumulate', action='store_const',

const=sum, default=max,

help='sum the integers (default: find the max)')

args=parser.parse_args()print(args.accumulate(args.integers))

将上面的代码保存为文件 argparse_usage.py,在终端运行,结果如下:

$ python argparse_usage.py

usage: argparse_usage.py [-h] [--sum] N [N ...]

argparse_usage.py: error: too few arguments

$ python argparse_usage.py1 2 3 4

4$ python argparse_usage.py1 2 3 4 --sum10

add_argument()方法

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

每个参数解释如下:

name or flags - 选项字符串的名字或者列表,例如 foo 或者 -f, --foo。

action - 命令行遇到参数时的动作,默认值是 store。

store_const,表示赋值为const;store_ture/store_false。详情见下面。

append,将遇到的值存储成列表,也就是如果参数重复则会保存多个值;

append_const,将参数规范中定义的一个值保存到一个列表;

count,存储遇到的次数;此外,也可以继承 argparse.Action 自定义参数解析;

const - action 和 nargs 所需要的常量值。

nargs - 应该读取的命令行参数个数,可以是具体的数字,或者是?号,当不指定值时对于 Positional argument 使用 default,对于 Optional argument 使用 const;或者是 * 号,表示 0 或多个参数;或者是 + 号表示 1 或多个参数。

default - 不指定参数时的默认值。

type - 命令行参数应该被转换成的类型。

choices - 参数可允许的值的一个容器。

required - 可选参数是否可以省略 (仅针对可选参数)。

help - 参数的帮助信息,当指定为argparse.SUPPRESS时表示不显示该参数的帮助信息.

metavar - 在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称.

dest - 解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线.

importargparse

parser=argparse.ArgumentParser()

parser.add_argument('--inter', action='store_true')

args=parser.parse_args()print(args.inter)

在命令行运行python temp.py          args.interpolate是False

在命令行运行python temp.py --inter     args.interpolate是True

tensorflow命令行参数使用

1、tf.app.flags()  # 他支持应用从命令行接受参数在tf.app.flags中有下列定义参数的类型

DEFING_string(flag_name, default_value, docstring)

DEFING_integer(flag_name, default_value, docstring)

DEFING_boolean(flag_name, default_value, docstring)

DEFING_float(flag_name, default_value, docstring)

2、tf.app.flags,在flag有一个FLAGS标志,他在程序中可以调用我们前面定义的flag_name,

3、通过tf.app.run()启动maini(argv)函数

tf.app.flags.DEFINE_integer("max_step", 0, "训练模型的步数")

tf.app.flads.DEFINE_string("model_dir", "", "模型保存的路径+模型名")

FLAGS= tf.app.flags.FLAGS  #定义命令行参数

print(FLAGS.max_step)print(FLAGS.model_dir)defmain(argv):print(argv)

tf.app.run()#启动main函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汤姆克兰西全境封锁服务器维护时间,汤姆克兰西全境封锁无法登录怎么解决 无法登录解决方法攻略...

《汤姆克兰西:全境封锁》是款大型射击游戏,这款游戏的画面十分的精致,在这款游戏中会有各种不同的任务,玩家要带着武器来进行射击。在游戏的时候很多玩家们都反映无法登录怎么解决?那么下面小编就为玩家们详细解说下关…

需要的依赖_三十而已:夫妻关系中需要的是坦诚和依赖

最近三十而已大热播,开始时很多人都看好顾佳和许幻山这一对,顾佳有才有颜,上得厅堂下得厨房,处理事情干净利索,是难得的贤内助。许幻山温柔帅气还有才,关键是还对老婆好,他们的组合可以说是很让…

python代码导出_代码生成 – Python生成Python

我有一组对象,我正在创建一个类,我想要将每个对象存储为自己的文本文件.我真的希望将其存储为一个Python类定义,它会分类我正在创建的主类.所以,我做了一些戳,并在effbot.org上找到了一个Python代码生成器.我做了一些实验,这里是我想出来的:## a Python code genera…

语言建立一个学生籍贯管理簿_编写一个Excel自定义函数,身份证信息提取如探囊取物...

观看视频更直观我们建立信息表时不仅要输入性别、生日和年龄等信息,往往也需要输入身份证号码,而身份证号码中包含有籍贯、性别、生日和年龄等信息,从身份证号码中提取上述信息可以减少输入工作量,提高工作效率。利用Excel中的内置…

python 32的值_示例解读 Python 2 和 Python 3 之间的主要差异

每门编程语言在发布更新之后,主要版本之间都会发生很大的变化。 在本文中,Vinodh Kumar 通过示例解释了 Python 2 和 Python 3 之间的一些重大差异,以帮助说明语言的变化。本教程主要介绍内容:表达式Print 选项Unequal 操作Range自…

原码一位乘法器设计_数字IC校招基础知识点复习(七)——超前进位加法器、Wallace树、Booth乘法器...

1.超前进位加法器看了一些面经,提到会让你用基础的门搭加法器,因此首先得熟悉半加器,全加器等最基础的加法器才能理解之后的超前进位加法器,树型加法器等复杂的加法器。半加器的输入为a,b,输出为结果s和进位…

保存点云数据_3D点云配准(二多幅点云配准)

本文首发于微信公众号「3D视觉工坊」:3D点云配准(二多幅点云配准) 在上一篇文章 点云配准(一 两两配准)中我们介绍了两两点云之间的配准原理。本篇文章,我们主要介绍一下PCL中对于多幅点云连续配…

python 数字类型和字符串类型的相互转换_python 数字类型和字符串类型的相互转换...

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

url存在宽字节跨站漏洞_5分钟速览丨常见的Web安全漏洞及测试方法

中秋小长假“余额”就剩半天了尽管心里有太多不舍也要调整自己毕竟假期都是短暂的工作才是职场人生的常态为了尽快消除“假日综合症”e小安贴心送上小文一篇小伙伴们赶紧“脉动”回来吧各类web应用充斥在我们的网络生活中,但是因为开发者安全意识不强而导致的安全问…

9切换中文mac_超详细的Mac重装系统教程!让重装系统变得简单起来!

mac电脑该怎么重装系统?苹果电脑在长时间使用后,系统可能会变得比较慢,另外各种缓存垃圾也会越堆越多,影响电脑的反应速度。mac OS系统是苹果电脑独有的操作系统,重装mac系统过程和Win系统完全不同,所以第一次使用苹果电脑的用户都…

python允许无止境的循环_ParisGabriel:Python无止境 day03

print(“hello world”)变量 : 存储信息的,日后被调用、修改操作常量: 固定不变的量,字母大写命名规则:1. 字母数字下划线组成2. 不能以数字开头,不能含有特殊字符和空格3. 不能以保留字命名4. 不能以中文命…

delphi datasnap断线后再次连接_电脑连接WiFi后经常出现断线断开连接问题的解决方法...

电脑连接WiFi总是断线怎么办?有用户的笔记本在连接无线网络后,一直出现断线问题,并且网速也很慢,这是怎么回事?电脑连接WiFi后经常断开连接该如何解决?下面给大家分享具体操作步骤。操作步骤:1、…

linux系统安装python包_Linux系统安装Python

Linux系统处带的是Python2,一直用Python3.6Django2进行开发,于是在Linux上安装Python3,安装过程如下:(1)、在官网下载“Gzipped source tarball”版本,上传到:/usr/local/,然后解压tar包:tar -x…

python程序发布 ubuntu_在ubuntu16.04的虚拟环境中运行Python程序作为服务

我正在尝试让一个FlaskSocketIO应用程序作为一个服务在ubuntu16.04上运行,在一个虚拟环境中。我的服务器每天凌晨3点重新启动(超出我的控制范围),所以我需要它在启动时自动启动。在运行脚本本身可以正常工作:$ python main.py(29539) wsgi st…

添加javascript代码:_JavaScript(1)

一、JavaScript组成1.ECMAScript:是ECMA制定的脚本语言的语法标准,基础语法的规范,为了让不同的浏览器都可以运行通过标准运行出来的代码。2.文档对象模型(DOM):JavaScript操作网页上的元素(标签)的API。3.浏览器对象模型(BOM)&am…

win 8 共享连接数是多少_局域网IP限速怎么配置,限速多少比较合适

由于视频和下载可以轻易的占用大量带宽,为了网络的稳定运行,大部分局域网都会对客户端进行一定的限速。本文中,我将介绍如何根据带宽来做限速,限速设置多少比较合理?1. 限速多少比较合理?正常的办公上网&am…

华农软件工程实验报告_华南农业大学的软件工程怎么样?

2019.07.08 更新 就是从2016年开始,废除数学与信息学院的软件工程。取而代之的是,在软件学院开通一个新专业——软件工程(温氏阿里创新班),所以现在软件学院就有两个专业了(软件工程、软件工程(温氏阿里创新班))。另外一个就是软件学院的实习…

xp 4g内存补丁_32位操作系统导致电脑可用内存不足4G

现象描述今天给大家分享一个关于电脑使用的小知识:电脑安装32位操作系统,导致电脑可用内存低于4G。详细解释一下:如果你的电脑安装的操作系统是32位操作系统,无论你电脑安装了多大的内存,可用内存都不会超过4G&#xf…

statuml怎么添加用户_UML课后习题答案

第1章UML概述1. 请指出UML的三个主要的特性。1)UML是一种语言2)UML是用来建模的3)UML是统一的标准2. 请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。1)电路图:电子产品设计、生产、维修2)园区沙盘:直…

maven 镜像_Maven(一)

1. 掌握M2Elipse插件安装及Maven仓库的配置2. 掌握Maven工程目录结构和创建工程3. 掌握Maven工程的关系4. 掌握Maven常见的插件5. 掌握Maven命令壹、什么是 Maven在Maven中,可以理解为所有的项目都是一个个的对象。贰、Maven 和 ANT 的区别叁、 Maven 的下载与 IDE …