Pickle, một phần của thư viện Python theo mặc định, là một mô-đun quan trọng bất cứ khi nào bạn cần sự kiên trì giữa các phiên người dùng. Là một mô-đun, pickle cung cấp khả năng lưu các đối tượng Python giữa các quy trình
Cho dù bạn đang lập trình cho cơ sở dữ liệu, trò chơi, diễn đàn hay một số ứng dụng khác phải lưu thông tin giữa các phiên, thì pickle vẫn hữu ích để lưu số nhận dạng và cài đặt. Mô-đun pickle có thể lưu trữ những thứ như kiểu dữ liệu như booleans, chuỗi và mảng byte, danh sách, từ điển, hàm, v.v.
Ghi chú. Khái niệm tẩy còn được gọi là tuần tự hóa, sắp xếp theo thứ tự và làm phẳng. Tuy nhiên, vấn đề luôn giống nhau—để lưu một đối tượng vào tệp để truy xuất sau này. Pickling hoàn thành việc này bằng cách viết đối tượng dưới dạng một luồng byte dài.
Mã ví dụ dưa chua trong Python
Để ghi một đối tượng vào một tệp, bạn sử dụng mã theo cú pháp sau
import pickle
object = Object[]
filehandler = open[filename, 'w']
pickle.dump[object, filehandler]
Đây là ví dụ trong thế giới thực trông như thế nào
import pickle
import math
object_pi = math.pi
file_pi = open['filename_pi.obj', 'w']
pickle.dump[object_pi, file_pi]
Đoạn mã này ghi nội dung của object_pi vào trình xử lý tệp file_pi, tệp này sẽ được liên kết với tệp filename_pi. obj trong thư mục thực thi
Để khôi phục giá trị của đối tượng vào bộ nhớ, hãy tải đối tượng từ tệp. Giả sử rằng dưa chưa được nhập để sử dụng, hãy bắt đầu bằng cách nhập nó
import pickle
filehandler = open[filename, 'r']
object = pickle.load[filehandler]
Đoạn mã sau khôi phục giá trị của số pi
import pickle
file_pi2 = open['filename_pi.obj', 'r']
object_pi2 = pickle.load[file_pi2]
Sau đó, đối tượng đã sẵn sàng để sử dụng lại, lần này là object_pi2. Tất nhiên, bạn có thể sử dụng lại tên ban đầu, nếu bạn thích. Ví dụ này sử dụng tên riêng biệt cho rõ ràng
Những điều cần nhớ về dưa chua
Hãy ghi nhớ những điều này khi sử dụng mô-đun dưa chua
- Giao thức dưa chua dành riêng cho Python – không đảm bảo tương thích với nhiều ngôn ngữ. Bạn rất có thể không thể chuyển thông tin để làm cho nó hữu ích trong Perl, PHP, Java hoặc các ngôn ngữ 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. ISự không tương thích tồn tại vì không phải mọi cấu trúc dữ liệu Python đều có thể được mô-đun tuần tự hóa
- Theo mặc định, phiên bản mới nhất của giao thức dưa chua được sử dụng. Nó vẫn như vậy trừ khi bạn thay đổi nó theo cách thủ công
Mẹo. Ngoài ra, hãy tìm hiểu cách sử dụng giá để lưu đối tượng trong Python để biết một phương pháp khác nhằm duy trì tính liên tục của đối tượng
Trích dẫn bài viết này
Sự sắp xếp
mla apa chicagotrích dẫn của bạn
Lukaszewski, Al. "Cách sử dụng Pickle để lưu đối tượng trong Python. "ThinkCo. https. //www. suy nghĩ. com/using-pickle-to-save-objects-2813661 [truy cập ngày 10 tháng 1 năm 2023]
Hướng dẫn này sẽ đề cập đến mô-đun dưa chua, đây là một phần trong thư viện chuẩn của bạn khi bạn cài đặt Python
Vậy ngâm chua là gì? . Bỏ chọn thì ngược lại
Bạn có thể nghe phương pháp này được gọi là tuần tự hóa, sắp xếp theo thứ tự hoặc làm phẳng trong các ngôn ngữ khác, nhưng nó gần như chỉ được gọi là tẩy trong Python. Vì vậy, những gì hiện ngâm có nghĩa là, đơn giản?
Pickling được sử dụng để lưu trữ các đối tượng python. Điều này có nghĩa là những thứ như danh sách, từ điển, đối tượng lớp, v.v.
một số ví dụ là gì?
Nói chung, bạn sẽ thấy pickling hữu ích nhất với phân tích dữ liệu, nơi bạn đang thực hiện các tác vụ thông thường trên dữ liệu, chẳng hạn như tiền xử lý. Ngoài ra, nó rất có ý nghĩa khi bạn làm việc với các kiểu dữ liệu dành riêng cho Python, chẳng hạn như từ điển
Ví dụ: chúng tôi sử dụng phương pháp pickling trong loạt bài hướng dẫn NLTK để lưu thuật toán máy học đã đào tạo của chúng tôi. Điều này để mỗi khi muốn sử dụng, chúng ta không cần phải đào tạo lại liên tục, rất mất thời gian.
Thay vào đó, chúng tôi chỉ đào tạo thuật toán một lần, lưu trữ nó vào một biến [một đối tượng] và sau đó chúng tôi chọn nó. Trong trường hợp của mô-đun NLTK, việc tạo bộ phân loại mỗi lần mất hơn 5-15 phút. Với dưa chua, mất khoảng 5 giây
Ví dụ: nếu bạn có một tập dữ liệu lớn và bạn đang tải tập dữ liệu khổng lồ đó vào bộ nhớ mỗi khi chạy chương trình, thì sẽ rất hợp lý nếu bạn chỉ chọn nó rồi tải tập dữ liệu đó thay vào đó, bởi vì nó sẽ
Hãy chỉ ra một ví dụ đơn giản
import pickle example_dict = {1:"6",2:"2",3:"f"} pickle_out = open["dict.pickle","wb"] pickle.dump[example_dict, pickle_out] pickle_out.close[]
Đầu tiên, nhập dưa chua để sử dụng nó, sau đó chúng tôi xác định một từ điển ví dụ, là một đối tượng Python.
Tiếp theo, chúng tôi mở một tệp [lưu ý rằng chúng tôi mở để ghi byte trong Python 3+], sau đó chúng tôi sử dụng pickle. dump[] để đặt lệnh vào tệp đã mở, sau đó đóng.
Đoạn mã trên sẽ lưu tệp dưa chua cho chúng tôi, bây giờ chúng tôi cần trình bày cách truy cập tệp dưa chua
pickle_in = open["dict.pickle","rb"] example_dict = pickle.load[pickle_in]
Mở tệp dưa chua
Sử dụng dưa chua. load[] để tải nó vào một var.
Đó là tất cả, bây giờ bạn có thể làm những việc như
print[example_dict] print[example_dict[3]]
Điều này cho thấy rằng chúng tôi đã giữ lại kiểu dữ liệu dict
Thông qua việc lưu đối tượng được tuần tự hóa, bản chất của nó được bao gồm, vì vậy chúng tôi không phải lo lắng về việc tải những thứ "dưới dạng" chuỗi, từ điển, danh sách, v.v.