一个用户友好的轻量级命令行参数分析器。
easyparse的Python项目详细描述
容易掌握
easyparse是一个命令行参数分析器。它非常轻。 它没有外部依赖项,并且少于500行。 easyparse不仅可以处理程序中的参数解析, 但它也可以处理显示帮助屏幕和错误处理。 可以说它比其他参数解析器更容易使用,因为它有利于 简单胜过复杂或高级功能。
用法
安装
使用easyparse非常简单。首先使用pip安装模块。
python3-m pip安装简易程序
或者,您也可以从github克隆它,然后构建自己的pip3包。
初始化
在程序中,导入模块,然后创建opt_parser类的实例。
importeasyparseparser=easyparse.opt_parser()
从现在开始,我们将使用解析器
实例来演示
任何功能或示例。
opt_解析器接受两个可选标志。
parser=easyparse.opt_parser(argument_list=sys.argv,show_colors=true)
参数列表
标志接受一个列表。这就是争论的焦点
从中分析。默认情况下,这是sys.argv。对于大多数程序来说
你可以从中获取参数,但是你可以使用任何
列出你想要的。
show_colors=true
标志可以设置为true或false,具体取决于
显示帮助时是否要启用默认颜色
屏幕,显示错误等。除非你的终端不支持
颜色,通常没有理由关闭此设置。
添加参数
easyparse的工作原理是首先添加参数,然后调用parse\u args
函数
然后它会查看argument_list
并解析该列表中的参数。因此,
要开始分析参数,必须首先添加要分析的参数。
parser.add_arg("<short_form>","<long_form>","<meta_var>","<Description>",<optional=True/False>)
下面是一个如何添加默认帮助参数的示例。
parser.add_arg("-h","--help",None,"Show this help screen and exit.",optional=True)
若要添加参数,必须添加缩写形式,才能将其视为有效参数。 现在你可能会想,如果我想添加一个只有简短形式的论点,但是 缺少一个或多个其他变量?"
这可以通过在变量的位置插入none
来实现,
或者显式指定变量表示的内容,如下所示variable=value
例如,如果我想添加这样一个不需要一个或多个值的参数,
我可以像下面几个例子那样做。
parser.add_arg("-s",None,None,"Turn on some option.",optional=True)parser.add_arg("-n","--no-foobar",None,"Turn off some other option.")parser.add_arg("-f",None,"file",description="Read values from file.")parser.add_arg("-c",meta_var="ciphertext",description="Lorem ipsum dolor sit amet.")parser.add_arg("-v","--version",description="Lorem ipsum dolor sit amet.")
EasyParse非常灵活,只要
参数遵循某种格式。简短的论据需要
从-
开始,之后只有字符。字符可以
是字母表还是标点符号?,也可以是任何一位数字,
-1
。完整形式的参数必须以--
开头,并且可以是任意长度
包含任何可打印字符。
唯一的例外是最终变量optional=false
。
您不必指定此选项,除非您希望标记
参数为可选。当您显示帮助屏幕时,它将显示
在可选参数部分下面。
添加评论
在添加所有参数之后,您可能希望添加一些注释,
描述你的程序是如何工作的,或者传达其他信息
给用户。这些注释将与用法一起显示
当调用帮助屏幕时,帮助屏幕中的选项。
添加注释非常简单,使用我们的解析器
实例,
可以这样做。
parser.add_comment("Hey, look at me, I'm a comment!")parser.add_comment("I'm another comment. Cool, huh?")
添加示例
像注释一样,您可以添加使用示例,它将显示 在帮助屏幕的顶部。注意:您没有 添加示例时需要指定文件名, 它会自动预装盟友。您可以覆盖 这种行为是通过指定一个字符串,理想情况下是一个文件名, 在第二个变量中,如果你愿意的话。您可以添加这样的示例。
parser.add_example("-s -e -i foo -k bar")parser.add_example("-d -n 32 -r 128 -i 'Lorem ipsum dolor' ")parser.add_example("<example>",prepend_name="<file-name>")parser.add_example("./file-name <example>",str())# Nothing prepended
分析参数
一旦我们设置好参数,我们就需要解析它们。
让我们使用与上面相同的解析器
实例。
parser.parse_args()
调用parse_args
函数后,将解析参数
一本字典将会被创建。这样你就可以看到
已设置特定参数并从参数获取值
需要传递给它一个值。在这一点上,如果有的话
已检测到错误。它将显示一个错误并退出显示
它遇到了哪个错误,使用了哪个参数。
检查是否存在
要检查是否提供了参数,可以使用是否存在
功能。您可以使用
用于检查是否存在的参数。如果
参数已设置。如果参数未设置,它将返回
无
。注意:在某些情况下,它可能返回false而不是none。
这不应该发生,但如果真的发生了,请将此作为问题报告,
说明您为它提供了哪些参数导致这种情况。
# Check if the help flag is set# Any form can be used. Both will result# In True if present.foo=parser.is_present("-h")bar=parser.is_present("--help")other_option=parser.is_present("-v")nonexistent_option=parser.is_present("-z")print(foo)print(bar)print(other_option)print(nonexistent_option)
让我们用-h
调用我们的程序$./program -h True True None None $./program -v None None True None
一旦我们检查了存在,我们就需要得到 从当前的参数中,我们可以使用它来创建 一个实用程序。
检查倍数
假设必须对每个
要检查的参数。那就多余了
很快。幸运的是,使用check\u multiple
功能。check_multiple
接受任意数量的参数
最终值为sep
要检查是否存在多个参数,我们可以 这样做。< /P>
importeasyparseparser=easyparse.opt_parser()0
争论是速记还是
长形。如果全部返回
参数已提供或将返回
false
如果没有提供一个或多个。
你可能还想知道,如果我想
手动查看每个参数的状态?
这就是sep=<;true/false>;
进入的地方。
如果sep
设置为true
将返回一个列表
包含true/false
取决于参数
存在,而不是布尔值。我们可以做到这一点
在下面的示例中。
importeasyparseparser=easyparse.opt_parser()1
让我们使用解析器创建一个小演示
以前的实例。
importeasyparseparser=easyparse.opt_parser()2
让我们用一些参数运行程序并验证 它能工作。
importeasyparseparser=easyparse.opt_parser()3
获取值
参数解析器的全部目的是 向上提供值。我们可以很容易地做到这一点,就像这样。
importeasyparseparser=easyparse.opt_parser()4
让我们测试一下。
importeasyparseparser=easyparse.opt_parser()5
帮助屏幕
在需要用户提供命令行的程序中
争论,很可能,你需要一个帮助屏幕,
显示程序可以接受的可能参数。
易帕斯使这个过程非常简单。每次你
添加一个参数,它会自动添加到帮助中
屏幕。你只需要在
当用户提供-h
或--help
importeasyparseparser=easyparse.opt_parser()6
让我们运行我们的程序。
importeasyparseparser=easyparse.opt_parser()7
同样,如果有任何评论或例子 另外,他们也会出现。我们留着吧 举个简单的例子,我们就这么做 后来,
错误处理
这里没有任何代码可以演示, 但是容易抓到的人 常见的错误,无论 或者提供了简短的表格,或者不同的表格 已经混合:
[X]参数重复 [X]无效参数 [X]不需要传递值 [X]参数类型无效
让我们看几个这样的例子。
importeasyparseparser=easyparse.opt_parser()8
摘要
让我们总结一下到目前为止,我们讨论过的所有功能:
importeasyparseparser=easyparse.opt_parser()9
结论
我想感谢你抽出时间来阅读 这个文档,尽管它只是一个简单的 标记自述文件。我希望这能证明 简易炮的功能和特点。如果你有任何问题, 请在github页面上创建一个问题,我将尝试 最好回答你的问题,只要它与 EasyParse及其用法/功能。
EasyParse只是我的"周末计划"之一。 你可以在我的github页面上查看我的其他项目, 在那里我建立了一个无线网络审计 脚本名为airscript ng,有很多内置工具, 我为了好玩而创建的一个加密算法叫做memecrypt。