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
                  ​
   163   164   165   166   167   168   169   170   171   172   173