0

我想在我的 python 脚本中添加一个详细的选项,但我不确定解决这个问题的最佳方法。我的 main() 函数调用 parse_cmdline() 函数,然后调用 process() 函数。我想为我的详细选项创建一个函数。我不确定我应该在哪里定义我的详细函数。我是否必须将详细选项从我的 parse_cmdline() 传递给我的 process() 函数?我正在寻找解决此问题的最佳方法。

4

4 回答 4

2

日志记录

您基本上需要一个日志记录模块来根据所需的详细程度过滤掉输出。也就是说,每条输出消息都会被赋予一个严重级别(如debugwarning),然后您可以决定要显示的消息的最低严重级别是多少。

您只需使用解析的参数来决定所需的严重级别(基本上,最低严重级别越高,程序越不冗长)。

日志

我只能推荐很棒的 logbook模块。使用将handler日志level设置为您需要的最低严重性的 a 将轻松解决您的问题(例如仅显示notice和更高...)。

print然后,您必须将脚本中的调用替换为记录调用 logbook.debuglogbook.info等等。

中有很多更高级的功能logbook,请随意查看文档。


请注意,默认情况下,logbook注册 aStderrHandler并将其推送到应用程序,您可以使用 轻松撤消它logbook.default_handler.pop_application()

正如文档所建议的,还有其他解决方案。

于 2012-10-11T20:34:43.177 回答
1

你调查过 argh吗?

首次导入

import argh

然后你会使用这样的东西来添加选项

@argh.arg('--verbose', default=False, help='Be more verbose')
于 2012-10-11T20:03:59.807 回答
0

解析您的选项argparser并传递它们或将它们放入global

请注意,global当您想要分配给全局范围内的某个名称时,您只需要使用关键字,而不是当您只想读取值时。

于 2012-10-11T20:01:39.530 回答
0

看看placargparse在我看来,它是一个很棒的命令行解析包,比内置的更直观。

于 2012-10-11T20:04:14.733 回答