Page 167 - Em Học Python
P. 167
LƯU LẠI DỮ LIỆU BẰNG MODULE PICKLE
Module pickle dùng để chuyển đổi các đối tượng Python sang một
dạng gì đó có thể ghi lại thành file và rồi có thể dễ dàng đọc lại. Em sẽ
thấy pickle cực kỳ có tác dụng khi viết game và muốn ghi lại kết quả
hiện tại của người chơi. Ví dụ, ta có thể thêm chức năng lưu lại game như
sau:
>>> game_data = {
'player-position' : 'N23 E45',
'pockets' : ['keys', 'pocket knife', 'polished stone'],
'backpack' : ['rope', 'hammer', 'apple'],
'money' : 158.50
}
Ta vừa mới tạo ra một map trong Python có chứa vị trí hiện tại của người chơi trong
game tưởng tượng, một danh sách các vật phẩm trong túi đồ, và số tiền người chơi đang có.
Ta có thể lưu lại map này vào file bằng cách mở một file ra để ghi, rồi gọi hàm dump của
module pickle, như thế này:
>>> import pickle
>>> game_data = {
'player-position' : 'N23 E45',
'pockets' : ['keys', 'pocket knife', 'polished stone'],
'backpack' : ['rope', 'hammer', 'apple'],
'money' : 158.50
}
>>> save_file = open('save.dat', 'wb')
>>> pickle.dump(game_data, save_file)
>>> save_file.close()
Ta mang module pickel vào ở ❶, rồi tạo ra map ở ❷. Ở ❸, ta mở file save.dat ra với
tham số ’wb’, tức là ghi file nhị phân ⟨write binary⟩ (em sẽ cần lưu lại file này ở các thư
mục như /Users/ malcolmozwald , /home/susanb/ hay C:\\Users\JimmyIpswich , như ta
làm ở Chương 9.) Ở ❹, ta dùng hàm dump rồi truyền map và biến file vào. Cuối cùng, ở ❺ ta
đóng file lại, vì đã xong việc rồi.
Các module hay dùng trong Python 141