argparse相关内容

带命令行参数的单元测试

根据我从另一篇 SO 帖子中了解到的,要对通过 argparse 获取命令行参数的脚本进行单元测试,我应该执行类似于下面的代码的操作,将 sys.argv[0] 作为 arg. 导入单元测试导入 match_loc类 test_method_main(unittest.TestCase):loc = match_loc.main()self.assertEqual(loc, [4])如果 __n ..
发布时间:2021-11-17 04:48:52 Python

是否可以在 argparse 子解析器中继承所需的选项?

我正在尝试编写一个具有多种运行模式的命令行应用程序(类似于具有 clone、pull 的 git, 等等.).我的每个子命令都有自己的选项,但我也希望它们共享一组必需的选项,因此我尝试使用父解析器来实现这一点.但是,似乎继承一个必需的选项会导致子解析器不断请求它.这是重新创建行为的示例: 导入 argparseparent_parser = argparse.ArgumentParser(des ..
发布时间:2021-11-17 04:48:46 其他开发

Argparse - 一次访问多个参数

我的应用程序使用数据库,所以当添加一个新元素(从命令行)时,我想检查这个元素是否已经在数据库中,我用 add_argument 的“type"参数做了什么: def check_uniq(project_name):如果 Project.exists(project_name):引发 argparse.ArgumentTypeError(返回项目名称 这工作得很好,但是为了让最终用户更容易思考 ..
发布时间:2021-11-17 04:48:43 Python

插件模式 + 子命令

我将做一个具有插件功能的命令行应用程序,每个新插件将由来自 __main__.py 脚本的子命令调用. 我曾经使用 argparse,我想知道是否可以使用 argparse 来实现子命令 + 插件看起来像(我找到了一些工具,但使用了不推荐使用的包)? myfantasticCLI├── __main__.py└── 插件├── 创建.py├── 通知.py└── test.py 我知道我 ..
发布时间:2021-11-17 04:48:40 Python

Argparse:混合父解析器和子解析器

我想编写一个简单的工具,它接受任意数量的输入文件并对每个文件执行一个操作.语法非常简单: mytool 操作 input1 input2 ... inputN 其中一些操作可能需要额外的参数 mytool 操作 op_argument input1 input2 ... inputN 除此之外,我希望用户能够指定是否应就地执行操作,以及指定输出的目标目录. mytool -t $TARG ..
发布时间:2021-11-17 04:48:34 Python

使用 python argparse 解析嵌套列表

假设我期待一个列表列表,其中内部列表具有不同的类型和长度,例如.g., [[1, 2], ["foo", "bar"], [3.14, "baz", 20]] 如何使用 argparse 解析上面的列表? 关于 stackoverflow 的最有用的问题: 存在类似的问题,其中最有用的是这里.但在我的情况下,它们还不够好,因为它们忽略了列表嵌套有不同数据类型和长度的事实. ..
发布时间:2021-11-17 04:48:31 Python

Python argparse 错误到文件

我正在尝试制作一个脚本,该脚本接收所有错误并将它们记录到日志文件中.我想在这个文件中包含任何 argparse 错误.我已经使用 logging 包和 sys.excepthook 来驱动日志文件的意外异常. 这是一个示例代码: 导入 argparse导入日志导入系统导入回溯def log_uncaught_exceptions(ex_cls, ex, tb):logging.critic ..
发布时间:2021-11-17 04:48:29 Python

Python argparse:如何处理 MacOSX `-psn` 参数

MacOSX launchd 将 -psn... 参数传递给应用程序.如何告诉 argparse 如何解析参数?它基本上是 -psn_([0-9]+)_([0-9]+) 但我很好,如果它只是解析 -psn(\S*)>.这可能吗? (参见 此处 有关进程序列号 (PSN) 的一些文档.还有 这里 是我关于如何处理参数的问题.) 解决方案 查看 psn 参数的结构,使用 argparse ..
发布时间:2021-11-17 04:48:26 Python

完全自定义的 Python 帮助用法

我正在尝试使用 Python 创建一个完全自定义的“帮助"用法(我计划将其导入到许多我希望具有样式一致性的程序中),但遇到了一些问题. 我不知道为什么我的描述忽略了换行符...试过 "" 和 '', 我无法让 ":" 出现在 "...ARGS" 行的/newline 之后,显然它们看起来很奇怪,坐在自己的行上,并且 我不知道如何在末尾添加换行符.请帮忙?? 这是我现在得到的示例: ..
发布时间:2021-11-17 04:48:11 Python

使用 argparse 参数作为关键字参数

假设在使用 argparse 解析我的命令行后,我有一个 args 命名空间.现在,我想用它来创建一些像这样的对象: foo = Foo(bar=args.bar) 不幸的是,我的限制是如果一个关键字参数被设置,它不能是None.现在,我需要检查 args.bar 是否已设置并采取相应措施: 如果 args.bar:foo = Foo(bar=args.bar)别的:foo = foo() ..
发布时间:2021-11-17 04:48:08 Python

argparse 和互斥组,每个组都有自己所需的设置

我有一个程序需要有一个选项来测试服务器 ID 列表或对服务器发出命令.这意味着,如果我发出 --test,则不需要其他任何内容.它对每台服务器运行所有测试并打印结果. 但是,如果我不指定 --test,那么它应该需要一些选项,例如 --id 和 --command>. 但是,我不确定 argparse 是否可以处理互斥组中所需的选项.代码(为简单起见修改)如下.我已经修改了选项,所以如 ..
发布时间:2021-11-17 04:48:05 Python

Python argparse - 将父解析器参数分组

有没有办法将来自父解析器的参数分组到不同的组中?我无权访问父解析器本身,所以我无法在那里添加组.(我使用的是 Google 的 OAuth2 框架). 目前我的代码是: # test.py从 argparse 导入 ArgumentParser从 oauth2client 导入工具parser = ArgumentParser(description="My program", paren ..
发布时间:2021-11-17 04:48:02 Python