Page 168 - Em Học Python
P. 168
CHÚ Ý
Các file đơn giản ⟨plain text file⟩ chỉ chứa các ký tự mà con người có thể đọc được. Nhưng
hình ảnh, file nhạc, phim hay các đối tượng Python còn chứa những thông tin khác nữa
mà không phải lúc nào ta cũng có thể đọc và hiểu được, ta thường gọi chúng là file nhị
save.dat ra, em sẽ thấy nó chẳng có ý nghĩa gì hết; chỉ là một
phân ⟨binary file⟩. Nếu mở file
đống các ký tự lung tung trộn lẫn vào với nhau.
Ta có thể giải mã các đối tượng trong file này bằng hàm load của pickle. Khi giải
mã, ta thực ra đang đảo ngược lại quá trình mã hoá: Ta lấy lại các thông tin được viết trong
file ra và chuyển chúng lại thành các giá trị mà ta có thể dùng lại được trong chương trình.
Cũng tương tự như lúc ra dùng hàm dump:
>>> load_file = open('save.dat', 'rb')
>>> loaded_game_data = pickle.load(load_file)
>>> load_file.close()
Đầu tiên ta mở file ra với tham số rb, tức là đọc file nhị phân ⟨write binary⟩. Sau đó ta
truyền file vào và gán giá trị trả ra cho biến loaded_game_data. Cuối cùng ta đóng file lại.
Để đảm bảo thông tin được ghi lại được lấy ra đúng, ta hiển thị biến ra:
>>> print(loaded_game_data)
{'money': 158.5, 'backpack': ['rope', 'hammer', 'apple'], 'player-position':
'N23 E45', 'pockets': ['keys', 'pocket knife', 'polished stone']}
TÓM TẮT
Trong chương này em đã thấy trong Python, module nhóm các hàm, lớp và biến lại
với nhau như thế nào, và làm thế nào để gọi lại chúng bằng cách mang các module vào.
142 Chương 10