使用 Python 即时存储数据
Posted
技术标签:
【中文标题】使用 Python 即时存储数据【英文标题】:Storing data on the fly with Python 【发布时间】:2011-07-02 12:53:00 【问题描述】:我有一个程序,我想在其中记录函数名、传递给函数的参数和结果。我目前正在使用装饰器记录此内容。但是我不确定如何存储它。目前我只是每次都附加到一个文件中。
我希望能够将我的装饰器添加到任何 python 程序中的任何函数并记录结果。因此,我需要能够每次都存储数据。这使得使用 XML 存储数据变得很困难,因为每次都必须对文档进行解析、添加和重写。
关于如何保存这些信息有什么建议吗?
【问题讨论】:
【参考方案1】:将所有这些包装在一个类中,然后使用pickle module
我有一个项目做的事情非常接近你想要的:coopy
【讨论】:
谢谢,pickle 效果最好,因为这意味着我可以保存更复杂的对象。【参考方案2】:使用标准库中的logging
模块。它旨在提供一个灵活的框架来记录来自正在运行的应用程序的信息(跨模块和源文件)。
特别是,它支持 handlers 的概念,允许您将日志信息发送到各种接收器:文件、套接字、电子邮件、系统日志守护程序(在 Unix 上)等等。如果现有的处理程序都不能满足您的需求,那么编写一个自定义的处理程序并将其插入并不难。例如,您可以实现一个写入数据库的记录器。
【讨论】:
以上是关于使用 Python 即时存储数据的主要内容,如果未能解决你的问题,请参考以下文章