簡體   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