我正在寻找一种使用Python将数据存储为平面文件的简单解决方案,这样每行都是一个可以轻松解析的数组的字符串表示。
我确信python有很容易完成这项任务的库,但到目前为止,我发现的所有方法看起来似乎都很草率才能让它工作,我相信有更好的方法。到目前为止,我已经尝试过:
我真的试图避免使用数据库(也许是SQLite,但它看起来有点矫枉过正),因为我正在尝试开发它,除了Python之外没有任何软件先决条件。
答案 0 :(得分:10)
除了pickle
(mentioned above)之外,还有json
(内置于2.6,之前可通过simplejson获得)和marshal
。此外,作者所在的reader
中还有一个csv
module。
更新:正如S. Lott在评论中指出的那样,还有YAML,可通过PyYAML获得。
答案 1 :(得分:6)
答案 2 :(得分:4)
文件必须是人类可读的吗?如果没有,shelve真的很容易使用。
答案 3 :(得分:2)
我正在寻找一种使用Python将数据存储为平面文件的简单解决方案,这样每行都是一个可以轻松解析的数组的字符串表示。
数据是否只能被Python程序解析?如果没有,那么我会避免pickle et al(搁置和编组),因为它们非常具有Python特性。 JSON和YAML具有重要的优势,即解析器可以轻松地用于大多数语言。
答案 4 :(得分:1)
SourceForge上的此解决方案仅使用标准Python模块:
y_serial.py module ::使用SQLite的仓库Python对象
“序列化+持久性::在几行代码中,将Python对象压缩并注释为SQLite;然后通过关键字按时间顺序检索它们,而不使用任何SQL。最有用的”标准“模块,用于存储无模式数据的数据库。“
http://yserial.sourceforge.net
SQLite根本不是“过度杀戮” - 你会惊讶它是多么简单;加上它解决了更常见的数据持久性问题。