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著, 賴屹民譯, 歐萊禮

results matching ""

    No results matching ""