首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 模块:argparse

argparse 模块可以人轻松编写用户友好命令行接口。程序定义它需要参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。...单个解析器能够通过提供 parents= 参数给 ArgumentParser 而使用相同参数不是重复这些参数定义。...如果你解析器之后改变父解析器是,这些改变不会反映在解析器。 formatter_class ArgumentParser 对象允许通过指定备用格式化类来自定义帮助格式。...(default: 42) MetavarTypeHelpFormatter 为它每一个参数中使用 type 参数名当作它显示名(不是使用通常格式 dest ): >>> parser =...fromfile_prefix_chars 有些时候,先举个例子,当处理一个特别长参数列表时候,把它存入一个文件不是命令行打出来会很有意义。

2.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

argparse 高级用法

这看上去比 click 费劲多了,而且还只是拿到解析结果,没有处理,但这个缺点也 argparse 更加灵活,我们可以控制它如何找到对应处理方法。 继承和扩展,这不就是 OOP 思想吗?...这样就实现了命令解析解耦,与命令有关参数自己 add_argument 添加就可以了。...argparse 是拿到 sys.argv 之后按顺序看,如果找到一个参数就把结果对应这个参数值赋好,如果找到一个命令名称则取得这个子命令解析器 递归调用这个解析器去解析剩下命令行参数。...也就是说如果没有匹配到这个子命令是不会执行任何该命令相关动作,也不会把这个子命令参数加入到解析器相同层级命令必然是互斥,不可能存在同时匹配到多个子命令情况。...比如 python cli.py greet goodbye 匹配到是 greet 命令, goodbye 会被当作 greet 参数 greet 自己解析器解析。

19740

Python 命令行之旅:深入 argparse(二)

比如,通过指定 formatter_class=argparse.RawTextHelpFormatter,我们可以帮助内容遵循原始格式: >>> import argparse >>> parser...那么共享解析器就显得尤为必要,这样就可以少去重复代码。 我们可以这样做, base.py 定义一个父解析器,存放 AccessKey 相关参数配置,作为公用解析器。...由于后续解析器会自动生成帮助信息,这里解析器指定 add_help=False 以不自动生成帮助信息: # bash.py import argparse parser = argparse.ArgumentParser...通过实现嵌套解析器,我们可以很容易地对这种子命令形式进行解析。 嵌套解析器,我们定义一个父解析器来作为整个命令行入口,再分别定义N个子解析器来对应N个子命令,由此即可实现整个功能。...在下篇文章,将带大家一起用 argparse 实现日常工作中常见 git 命令,想想是不是有些兴奋呢?

1.4K20

Python 命令行之旅:使用 argparse 实现 git 命令

argparse 要实现命令,那么之前介绍到 嵌套解析器 必不可少 当用户键入命令时,命令所对应解析器需要作出响应,那么需要用到解析器 set_defaults 功能 针对 git add...实现 假定我们 argparse-git.py[2] 文件实现我们 git 程序。 构建解析器 我们需要构建一个父解析器,作为程序解析器,程序名称指定为 git。..., status_parser.set_defaults 函数,能接收任意名称关键字参数,这个参数值会存放于父解析器解析命令行参数后变量。...比如,本文示例程序,我们为每个子解析器定义了 handle,那么 args = parser.parse_args() args 将具有 handle 属性,我们传入不同命令,那么这个 handle...额外要做是,要在解析器 add_parser 添加一个 pathspec 位置参数,且其数量是任意: def cli(): ...

65820

Python 命令行之旅:初探 argparse

花下猫语:国庆期间,公众号停更了几天,那是因为去江西参加婚礼了,如今正在写“观感”呢(写完后会发在文艺号“豌豆花”)。所以,原创文章要再拖一下了。 不过,公众号更新是不会停。...今天,继续分享一个优质系列文章:深入使用 argparse。这个系列属于一个更大“讲解开源项目系列”,说实话,这是一直想要写系列。这方面的文章实在太少见了,读者也不多。...觉得不分享出来,会是一种埋没,但愿对大家有启发吧,喵~~ ? 剧照 | 《走出非洲》 前言 你是否好奇过命令行敲入一段命令后,它是如何被解析执行?...默认情况下,参数取自 sys.argv[1:],它就是你命令行敲入一段命令(不含文件名)所对应一个字符串列表。...揭开命令行工具神秘面纱后,是不是发现它并没有想象困难?反倒是感受到一种简单而又强大优雅呢? 不过这还远远不是 argparse 全部面貌。

67120

Python argparse标准库快速入门

下面就让我们来看看如何使用argparse标准库吧。...prog - 程序名称(默认:sys.argv[0]),默认是Python程序文件名 usage - 描述程序用途字符串(默认值:从添加到解析器参数生成) description - 参数帮助文档之前显示文本...假如多个parser有一些可以共享参数,可以通过设置parser方式来共享 formatter_class - 用于自定义帮助文档输出格式类 prefix_chars - 可选参数前缀字符集合...metavar - 使用方法消息中使用参数值示例。 dest - 被添加到 parse_args() 所返回对象属性名。...bar参数修改了dest,所以底层属性名发生了变化,但是在帮助信息并没有什么改变。

86310

使用命令行界面运行Python脚本

我们可以命令行键入不同参数并将这些参数传递到脚本不是每次运行脚本时都更改.py文件代码。因此,使用CLI是非常灵活和方便,而且,从黑屏启动程序会你更酷,更像一个真正程序员。...之前,我们《使用Python拆分和合并PDF文件》实现了PDF拆分与合并,这里将在此基础,添加一个命令行界面。...我们还将稍微调整代码,定义三个变量,不是硬编码程序所有值:PDF源文件、要提取页面,以及最终生成PDF,此设置将允许我们在任何PDF文件使用该程序。...让我们看看如何通过命令行运行以下简单脚本来使用sys.argv。...对于(Windows)计算机上文件路径,由于有反斜杠/,Python不喜欢未处理文件路径;对于页面,整数列表[1,2,3]比字符串“1,2,3”更有意义,所以我们必须处理这些参数格式

2.8K30

parser.add_argument()用法——命令行选项、参数和命令解析器

argparse是一个Python模块:命令行选项、参数和命令解析器。...通过使用这种方法,可以使用 1、argparse简介: argparse 模块是 Python 内置一个用于命令项选项与参数解析模块,argparse 模块可以人轻松编写用户友好命令行接口。...通过程序定义好我们需要参数,然后 argparse 将会从 sys.argv 解析出这些参数。argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。...store_const,表示赋值为const; append,将遇到值存储成列表,也就是如果参数重复则会保存多个值; append_const,将参数规范定义一个值保存到一个列表; count,存储遇到次数..., ArgumentParser 将自动从 sys.argv 确定命令行参数。

1.6K20

《Python实例》基础之argparse,提供一个友好接口说明,老大说真好

提供文档太费时,又写不好,不提供文档吧又不太又好,今天python中发现了一个参数解析器,完美的解决这个问题,今天讲一下参数解析器使用,好了,废话蛮多了,开始吧。...1、模块介绍 模块源码位置 lib/argparse,如果你代码中使用不是这个位置,说明你导入错了。...argparse 可以你轻松编写用户友好命令行接口, argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。...') 3、使用参数地方读取参数 vars(parser.parse_args()) 4、pycharm 如何调用 4.1 命令行界面查看说明文档 python argFile.py -h...调用传参文件 pycharm 执行需要参数文件如果不传递参数会报下面的错误 ?

65130

Google 开源 Python 命令行库:初探 fire

argparse 是面向过程,需要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑。docopt 先用声明式语法定义出参数,再过程式地解析命令行和实现业务逻辑。...实现命令行程序步骤: 对于 argparse 来说,要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑(四步) 对于 docopt 来说,要先定义定义接口描述,再解析命令行,最后实现业务逻辑...我们不妨考虑下 Python 函数,函数是不是可以对应一个命令行程序,函数参数可以对应命令行程序参数和选项呢?...再看看 Python 类,一个类是不是可以对应一个命令行程序,每个实例方法就可以对应命令,实例方法参数就是对应命令参数和选项。...这么一想,理论确实是可以实现,我们不妨通过下面的示例来看看 fire 是如何让我们通过简单方式实现命令行程序。

49910

Python 基础(二十一):argparse 模块

使用 argparse 模块,我们可以轻松编写出用户友好命令行接口。 2....,看一下方法每一个参数含义: prog:程序名称(默认:sys.argv[0]) usage:描述程序用途字符串(默认值:从添加到解析器参数生成) description:参数帮助文档之前显示文本...(默认值:无) epilog:参数帮助文档之后显示文本(默认值:无) parents:一个 ArgumentParser 对象列表,它们参数也应包含在内 formatter_class:用于自定义帮助文档输出格式类...,看一下参数说明: name or flags:一个命名或者一个选项字符串列表,例如:-f,--foo action:当参数命令行中出现时使用动作基本类型 nargs:命令行参数应当消耗数目 const...help:一个选项作用简单描述 metavar:使用方法消息中使用参数值示例 dest:被添加到 parse_args() 所返回对象属性名 下面我们通过具体示例看一下: import argparse

57720

python入门:argparse浅析 nargs=+作用

补充知识:argparse解析命令行参数 argparse简介: argparse,最常用就是上述三部分了:创建一个ArgumentParser对象;使用add_argument()方法来为创建...5、parents:继承父parser,为了避免一些公共内容重复定义,父parser初始化时会设置add_help=False,这是为了防止出现父与parser-h冲突抛出异常。...该文件一行只能有一个参数。如文件’-f\nbar’会被解析成[‘-f’,’bar’]。...action=’append’,表示传入值会作为一个列表一项,意味着option可以命令行多次出现。...如果是一个字符串,那么Parser解析时候会将它作为命令行传入值,使用type值来进行转换类型,但是如果不是的话,就会使用定义不进行类型转换。如果设置了nargs=’?’

12.7K10

Python argparse 模块作用,以及分享一个通用代码模板

使用 argparse 模块,可以轻松编写用户友好命令行界面。程序定义了它需要参数,argparse 就会找出如何从 sys.argv 解析出这些参数。...位置参数:这些参数是命令行按照顺序传递,不带前缀。例如,parser.add_argument("filename") 表示一个位置参数,用户需要提供一个文件名。...ArgumentParser.add_argument() 方法将单独参数规范附加到解析器。它支持选项参数、接受值选项和开/关标志。 type:命令行参数应该被转换成数据类型。...这样做有几个好处: 可读性:使用字典可使得后续代码更加易读,因为可以直接通过键来访问参数值,不是通过属性。 灵活性:字典提供了更多操作和遍历元素方法,使得处理复杂情况时更加灵活。...位置参数是根据其命令行中出现位置来处理可选参数则可以根据用户选择进行设置。 ️

12900

Python-argparse模块

最近在GitHub欣赏别人写代码,发现一个常用模块–argparse,居然到现在才知道,简直是罪过,于是马上开始了这个模块用法学习,这样后面时候就可以摈弃input()函数来交互了。...argparse模块功能 该模块可以命令模式下完成使用者与程序之间参数交互,并且这个模块会自动生成help菜单,使用者可以通过 -h|–help查看程序使用方法等。...使用方法 这里主要分四步: import导入该模块:import argparse 创建解析器对象:parse = argparse.ArgumenParser() 添加需要命令行参数与选项:parse.add_argument...先贴出argparse.ArgumenParser()可选参数及其含义: | 名字 | 默认值 | 功能...| 实列 这里贴出简单列子来辅助说明该模块使用方法 # author:Tommonkey # date:2022/5/4 import sys import argparse

45620

教你一招:用70 行 Python 代码编写一个递归下降解析器

深入到实际解析器实现之前,我们可对语法进行讨论。之前发表文章使用过LR解析器可以像如下方式定义计算器语法(标记使用大写字母表示): ?...但是解析器不是那么简单,它又会产生另一个问题:当左递归正确解析3-2-1为(3-2)-1,右递归却错误解析为3-(2-1)。...还没想到一个简单解决办法,所以为了事情简单,决定它继续使用错误解析格式,并在后面处理这个问题(请看步骤4) 第三步:解析为一个AST 算法其实很简单。...结果是一个tuple,当然我们并没有看到有剩下标识。匹配结果并不易于阅读,所以吧结果画成一个图: ? 这就是概念AST。...通过你思维逻辑,或者纸上描绘,想象解析器如何运作,这样是个很好锻炼。不敢说这样是必须,除非你想神交。你可以通过AST来帮助你实现正确算法。

1.2K100

【Python爬虫实操】 如何在任务中高效处理命令参数

今天互联网技术发展,以Python为代表脚本语言各个领域都广泛应用。处理命令行参数是Python编程中常见需求之一。...本文将介绍如何在Python中高效处理命令行参数,帮助更好地利用Python进行开发。  1.了解命令行参数基本概念  命令行参数是在运行程序时由用户命令行输入参数。...2.使用argparse库处理命令行参数  Python标准库argparse模块提供了一个简单强大命令行参数解析器。...此外,argparse库还支持命令,允许一个主程序定义多个命令并分别处理它们参数。  4.使用合适帮助信息  对命令行程序来说,良好帮助信息是非常重要。...可以利用argparse库提供各种特性,优化命令行参数处理过程,提升程序用户体验和性能。  本文介绍了如何在Python中高效处理命令行参数。

18560
领券