7.5. 存取pickle檔
在Python中有提供 pickle 模組,可以用來將幾乎任何類型的資料結構儲存成二進位的 pickle 檔案,甚至是使用者利用串列、元組、字典或集合等所組合出較為複雜的資料結構,這種過程被稱作序列化(serialization)。
使用 pickle 模組
使用 import 關鍵字將 pickle 模組匯入程式中。
import pickle
pickle 模組利用下列兩種方式存取檔案:
- load : 將某一個檔案解 pickle 回物件。
- dump : 將某一個物件 pickle 成檔案。
存取 pickle 檔案 - 使用 Excel
在上述提及幾乎任何類型的資料結構儲存成二進位的 pickle 檔案,所以在下列範例中以Excel 為主要儲存的對像。
>>> import openpyxl
>>> wb = openpyxl.load_workbook('excel_read.xlsx')
>>> wb.get_sheet_names()
['Sheet1']
>>> sheet = wb.active
>>> sheet.title
'Sheet1'
>>> import pickle
>>> with open('excel_serial.pickle', 'wb') as f: # 將 Excel 物件 pickle 成檔案
... pickle.dump(wb, f)
...
>>>
>>> wb = None # 將 wb 指向 None
>>> wb
>>> type(wb)
<class 'NoneType'>
>>> with open('excel_serial.pickle', 'rb') as f: # 將檔案解 pickle 成 Excel 物件
... wb = pickle.load(f)
...
>>>
>>> type(wb)
<class 'openpyxl.workbook.workbook.Workbook'>
>>> sheet = wb.active
>>> sheet.title
'Sheet1'
>>> for row in sheet.rows:
... for cell in row:
... print(str(cell.value), end=' ')
... print()
...
A1 B1 C1 D1 E1
A2 B2 C2 D2 E2
A3 B3 C3 D3 E3
A4 B4 C4 D4 E4
A5 B5 C5 D5 E5
參考資料
- Python編程入門第3版(簡), 第八章, Toby Donaldson著, 人民郵電出版社
- 精通Python, 第八章, Bill Lubanovic著, 賴屹民譯, 歐萊禮