繁体   English   中英

简单的数据存储在Python中

[英]Simple data storing in Python

我正在寻找一个使用Python将数据存储为平面文件的简单解决方案,这样每行都是一个可以轻松解析的数组的字符串表示。

我确信python有很容易完成这项任务的库,但到目前为止我发现的所有方法看起来都很邋to才能让它工作,我相信有更好的方法。 到目前为止,我已经尝试过:

  • array.toFile()方法,但无法弄清楚如何使用嵌套的字符串数组,它似乎面向整数数据。
  • 列表和集合没有内置的toFile方法,因此我不得不手动解析和编码。
  • CSV似乎是一个很好的方法,但这也需要手动解析它,并且不允许我在末尾添加新行 - 所以任何新的调用CSVWriter都会覆盖文件现有数据。

我真的试图避免使用数据库(也许SQLite,但似乎有点矫枉过正),因为我正在尝试开发它,除了Python之外没有任何软件先决条件。

除了pickle如上所述 )之外,还有json (内置于2.6,之前通过simplejson提供)和marshal 此外,作者所在的同一个csv模块中有一个reader

更新:正如S. Lott在评论中指出的,还有YAML,可通过PyYAML获得。

文件必须是人类可读的吗? 如果没有, 搁置真的很容易使用。

我正在寻找一个使用Python将数据存储为平面文件的简单解决方案,这样每行都是一个可以轻松解析的数组的字符串表示。

数据是否只能被Python程序解析? 如果没有,那么我会避免pickle et al(搁置和编组),因为它们非常具有Python特性。 JSON和YAML具有重要的优势,即解析器可以轻松地用于大多数语言。

SourceForge上的此解决方案仅使用标准Python模块:

y_serial.py module ::使用SQLite仓库Python对象

“序列化+持久性::在几行代码中,将Python对象压缩并注释为SQLite;然后通过关键字按时间顺序检索它们,而不使用任何SQL。最有用的”标准“模块,用于存储无模式数据的数据库。”

http://yserial.sourceforge.net

SQLite根本不是“矫枉过正” - 你会惊讶它是多么简单; 加上它解决了更多的一般数据持久性问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM