Python danh sách các đối tượng

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 chicago

trí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.

Bạn có thể chọn một danh sách các đối tượng?

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. .

Bạn có thể chọn đối tượng Python không?

Mô-đun pickle Python được sử dụng để tuần tự hóa và hủy tuần tự hóa cấu trúc đối tượng Python. Mọi đối tượng trong Python đều có thể được chọn để có thể lưu trên đĩa . Điều mà pickle làm là nó “tuần tự hóa” đối tượng trước khi ghi nó vào tệp. Pickling là một cách để chuyển đổi một đối tượng python (list, dict, v.v. )

Pickle có thể cứu đồ vật không?

Pickling cho phép bạn lưu đối tượng python dưới dạng tệp nhị phân trên ổ cứng . Sau khi chọn đối tượng của mình, bạn có thể tắt phiên python của mình, khởi động lại máy tính nếu muốn và sau đó tải lại đối tượng của bạn vào python.

Pickle có thể lưu trữ bộ dữ liệu ở định dạng chuỗi không?

Đây là những thứ mà mô-đun dưa chua lưu trữ. Tất cả các kiểu dữ liệu gốc mà Python hỗ trợ. booleans, số nguyên, số dấu phẩy động, số phức, chuỗi, đối tượng byte, mảng byte và Không có . Danh sách, bộ dữ liệu, từ điển và bộ chứa bất kỳ tổ hợp kiểu dữ liệu gốc nào.