我想在我的 python 脚本中添加一个详细的选项,但我不确定解决这个问题的最佳方法。我的 main() 函数调用 parse_cmdline() 函数,然后调用 process() 函数。我想为我的详细选项创建一个函数。我不确定我应该在哪里定义我的详细函数。我是否必须将详细选项从我的 parse_cmdline() 传递给我的 process() 函数?我正在寻找解决此问题的最佳方法。
4 回答
日志记录
您基本上需要一个日志记录模块来根据所需的详细程度过滤掉输出。也就是说,每条输出消息都会被赋予一个严重级别(如debug
或warning
),然后您可以决定要显示的消息的最低严重级别是多少。
您只需使用解析的参数来决定所需的严重级别(基本上,最低严重级别越高,程序越不冗长)。
日志
我只能推荐很棒的 logbook
模块。使用将handler
日志level
设置为您需要的最低严重性的 a 将轻松解决您的问题(例如仅显示notice
和更高...)。
print
然后,您必须将脚本中的调用替换为记录调用 logbook.debug
,logbook.info
等等。
中有很多更高级的功能logbook
,请随意查看文档。
请注意,默认情况下,logbook
注册 aStderrHandler
并将其推送到应用程序,您可以使用 轻松撤消它logbook.default_handler.pop_application()
。
正如文档所建议的,还有其他解决方案。
你调查过 argh吗?
首次导入
import argh
然后你会使用这样的东西来添加选项
@argh.arg('--verbose', default=False, help='Be more verbose')
解析您的选项argparser
并传递它们或将它们放入global
请注意,global
当您想要分配给全局范围内的某个名称时,您只需要使用关键字,而不是当您只想读取值时。
看看plac
。argparse
在我看来,它是一个很棒的命令行解析包,比内置的更直观。