一个用户友好的轻量级命令行参数分析器。

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。

github链接

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java语义理解递归反向字符串返回语句   java toString()方法打印空值   java大型IN子句   如何使用JavaSpring在JavaScriptjQuery中设置post路径   java ByteArrayOutputStream已上载到服务器   java为什么轮询在SocketIO上获取数据“无法加载请求的项”?   java源代码应该以UTF8格式保存   Java数据库轮询器?   在Java中将double转换为float   java AccessDeniedException:C:\Windows\System32\drivers\etc\hosts