
- Python 資料持久化教程
- Python 資料持久化 - 首頁
- Python 資料持久化 - 簡介
- Python 資料持久化 - 檔案 API
- 使用 os 模組進行檔案處理
- Python 資料持久化 - 物件序列化
- Python 資料持久化 - pickle 模組
- Python 資料持久化 - marshal 模組
- Python 資料持久化 - shelve 模組
- Python 資料持久化 - dbm 包
- Python 資料持久化 - csv 模組
- Python 資料持久化 - json 模組
- Python 資料持久化 - XML 解析器
- Python 資料持久化 - plistlib 模組
- Python 資料持久化 - sqlite3 模組
- Python 資料持久化 - SQLAlchemy
- Python 資料持久化 - PyMongo 模組
- Python 資料持久化 - Cassandra 驅動程式
- 資料持久化 - ZODB
- 資料持久化 - Openpyxl 模組
- Python 資料持久化資源
- Python 資料持久化 - 快速指南
- Python 資料持久化 - 有用資源
- Python 資料持久化 - 討論
Python 資料持久化 - 物件序列化
Python 內建的 `open()` 函式返回的內建檔案物件有一個重要的缺點。當以 'w' 模式開啟時,`write()` 方法只接受字串物件。
這意味著,如果你的資料以任何非字串形式表示,無論是內建類(數字、字典、列表或元組)的物件,還是其他使用者定義類的物件,都不能直接寫入檔案。在寫入之前,你需要將其轉換為字串表示。
numbers=[10,20,30,40] file=open('numbers.txt','w') file.write(str(numbers)) file.close()
對於二進位制檔案,`write()` 方法的引數必須是位元組物件。例如,整數列表透過 `bytearray()` 函式轉換為位元組,然後寫入檔案。
numbers=[10,20,30,40] data=bytearray(numbers) file.write(data) file.close()
要以相應的資料型別從檔案讀取回資料,需要進行反向轉換。
file=open('numbers.txt','rb') data=file.read() print (list(data))
這種將物件手動轉換為字串或位元組格式(反之亦然)的型別非常繁瑣和冗長。可以將 Python 物件的狀態以位元組流的形式直接儲存到檔案或記憶體流中,並檢索到其原始狀態。這個過程稱為序列化和反序列化。
Python 的內建庫包含各種用於序列化和反序列化過程的模組。
序號 | 名稱及描述 |
---|---|
1 |
pickle Python 特定的序列化庫 |
2 |
marshal 內部用於序列化的庫 |
3 |
shelve Pythonic 物件持久化 |
4 |
dbm 提供 Unix 資料庫介面的庫 |
5 |
csv 用於將 Python 資料儲存和檢索到 CSV 格式的庫 |
6 |
json 用於序列化到通用 JSON 格式的庫 |
廣告