CyStack logo
  • Sản phẩm & Dịch vụ
  • Giải pháp
  • Bảng giá
  • Công ty
  • Tài liệu
Vi

vi

Trang chủHướng dẫnVí dụ Python Pickle: Hướng dẫn lưu trữ & tải dữ liệu trong Python dễ hiểu

Ví dụ Python Pickle: Hướng dẫn lưu trữ & tải dữ liệu trong Python dễ hiểu

CyStack blog 4 phút để đọc
CyStack blog31/08/2025
Locker Avatar

Chris Pham

Technical Writer

Locker logo social
Reading Time: 4 minutes

Tiếp nối bài viết trước về Python Multiprocessing, hôm nay chúng ta sẽ khám phá Python Pickle – một module quan trọng giúp tuần tự hóa và giải tuần tự đối tượng trong Python.

Ví dụ Python Pickle

Python Pickle là gì

Python Pickle được sử dụng để serialize (tuần tự hóa) và deserialize (giải tuần tự hóa) một cấu trúc đối tượng của Python. Bất kỳ đối tượng nào trong Python đều có thể được pickle để lưu trữ vào ổ đĩa.

Đầu tiên, Python Pickle sẽ tuần tự hóa đối tượng, sau đó chuyển đổi đối tượng thành một luồng ký tự (character stream). Luồng ký tự này chứa tất cả thông tin cần thiết để tái tạo lại đối tượng trong một script Python khác.

*Lưu ý: Theo tài liệu, module pickle không an toàn trước dữ liệu lỗi hoặc được tạo ra với mục đích xấu. Do đó, bạn không bao giờ được unpickle (giải tuần tự hóa) dữ liệu nhận được từ một nguồn không đáng tin cậy hoặc chưa được xác thực.

Python Pickle dump

Trong phần này, chúng ta sẽ học cách lưu trữ dữ liệu bằng Python pickle. Để làm như vậy, chúng ta phải nhập module pickle trước. Sau đó, sử dụng hàm pickle.dump() để lưu trữ dữ liệu đối tượng vào tệp. Hàm pickle.dump() nhận 3 đối số.

Đối số đầu tiên là đối tượng mà bạn muốn lưu trữ. Đối số thứ hai là đối tượng tệp mà bạn nhận được bằng cách mở tệp mong muốn ở chế độ write-binary (wb). Và đối số thứ ba là đối số key-value (cặp khóa-giá trị). Đối số này định nghĩa protocol (giao thức).

Có hai loại giao thức – pickle.HIGHEST_PROTOCOLpickle.DEFAULT_PROTOCOL. Xem mã mẫu để biết cách dump dữ liệu bằng pickle.

import pickle

# take user input to take the amount of data
number_of_data = int(input('Enter the number of data : '))
data = []

# take input of the data
for i in range(number_of_data):
    raw = input('Enter data '+str(i)+' : ')
    data.append(raw)

# open a file, where you ant to store the data
file = open('important', 'wb')

# dump information to that file
pickle.dump(data, file)

# close the file
file.close()

Chương trình sau sẽ yêu cầu bạn nhập một số dữ liệu. Trong trường hợp của tôi, nó giống như thế này.

python pickle input

Python Pickle load

Để truy xuất dữ liệu đã được pickled, các bước khá đơn giản. Bạn phải sử dụng hàm pickle.load() để làm điều đó. Đối số chính của hàm pickle.load() là đối tượng tệp mà bạn nhận được bằng cách mở tệp ở chế độ read-binary (rb). Hãy viết mã để truy xuất dữ liệu chúng ta đã lưu bằng mã pickle dump. Xem mã sau để hiểu rõ.

import pickle

# open a file, where you stored the pickled data
file = open('important', 'rb')

# dump information to that file
data = pickle.load(file)

# close the file
file.close()

print('Showing the pickled data:')

cnt = 0
for item in data:
    print('The data ', cnt, ' is : ', item)
    cnt += 1

Kết quả đầu ra sẽ như sau:

Showing the pickled data:
The data  0  is :  123
The data  1  is :  abc
The data  2  is :  !@#$

Ví dụ về Python Pickle

Tôi đã làm một video ngắn cho thấy việc thực thi các chương trình ví dụ về Python pickle – đầu tiên là lưu dữ liệu vào tệp và sau đó tải và in nó ra.

python pickle example

Như bạn có thể thấy, tệp được tạo bởi python pickle dump là một tệp nhị phân và hiển thị các ký tự rác trong trình soạn thảo văn bản.

Các lưu ý quan trọng về Python Pickle

Một vài điểm quan trọng về module python pickle là:

  • Giao thức pickle dành riêng cho Python – nó không đảm bảo tương thích đa ngôn ngữ. Điều này có nghĩa là bạn rất có thể không thể chuyển thông tin để làm cho nó hữu ích trong các ngôn ngữ lập trình khác.
  • Cũng không có gì đảm bảo về khả năng tương thích giữa các phiên bản Python khác nhau vì không phải mọi cấu trúc dữ liệu của Python đều có thể được tuần tự hóa bởi module.
  • Phiên bản mới nhất của giao thức pickle được sử dụng theo mặc định trừ khi bạn thay đổi thủ công.
  • Cuối cùng nhưng không kém phần quan trọng, theo tài liệu, module pickle không an toàn trước dữ liệu sai hoặc được tạo ra với mục đích xấu.

Vậy đó là tất cả về ví dụ python pickle. Hy vọng rằng bạn hiểu rõ. Mọi thắc mắc thêm xin vui lòng sử dụng phần bình luận. 🙂 Tham khảo: Official Documentation

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất