使用 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 即时存储数据的主要内容,如果未能解决你的问题,请参考以下文章

自研数据库CynosDB存储系统如何实现即时恢复

当对短网址使用唯一的字母数字字符串时,将创建的字符串存储在数据库中还是即时编码/解码更好?

PHP:在中间服务器上即时压缩文件流,而不存储(太多)数据

在 Python 中即时从 CSV 生成镶木地板

使用 Ruby 即时编码 Base64

SQL 存储过程和数据集