Python lưu đối tượng vào tệp

Tôi đã chia sẻ kinh nghiệm viết các lớp và sử dụng OOP trong Python, nhưng tôi chỉ phát triển các đối tượng được sử dụng trong tập lệnh đang chạy hiện tại và được lưu trong bộ đệm. Các đối tượng được lưu trong bộ nhớ cache đó sẽ không khả dụng khi bạn chạy chương trình của mình trong tương lai

Suy nghĩ đầu tiên của tôi khi tự hỏi làm thế nào tôi có thể lưu trữ các đối tượng này là chọn từng đối tượng và lưu các tệp .pkl trong thư mục riêng của chúng, nhưng tôi đã tìm thấy mô-đun giá đỡ, một phần của thư viện tiêu chuẩn và được xây dựng chính xác cho mục đích này - tính kiên trì của đối tượng

Làm thế nào nó hoạt động?

Mô-đun giá đỡ sử dụng cả mô-đun pickle và dbm để lưu đối tượng ở dạng từ điển. Tất cả các đối tượng đã lưu được chọn, sau đó được lưu trong cơ sở dữ liệu DBM. Khi bạn muốn khôi phục các đối tượng sau này, mô-đun giá đỡ sẽ mở và tải chúng

Vì mô-đun giá về cơ bản đã lưu một từ điển khóa-giá trị của tất cả các đối tượng của bạn, nên bạn có thể sử dụng tất cả các phương thức từ điển thông thường để tương tác với các đối tượng (dict.keys)

Có một sự khác biệt. Trước tiên, bạn cần mở các giá, sau đó thực hiện các thay đổi, sau đó đóng giá. Tương tự như cách bạn mở/đóng bất kỳ tệp nào trong tập lệnh

sử dụng cơ bản

Đầu tiên, hãy tạo một mô-đun với mã để tạo các đối tượng đại diện cho ô tô

Bây giờ, chúng ta có thể tạo và lưu các đối tượng vào cơ sở dữ liệu “kệ” của mình (giống từ điển hơn trong trường hợp này nhưng nó sẽ là một. tập tin db). Hãy tạo một số đối tượng car và lưu chúng

Nếu bạn chưa đọc các nhận xét trong đoạn mã trên, hãy nhớ rằng bạn có thể đặt khóa cơ sở dữ liệu của mình thành bất kỳ thứ gì, miễn là chúng là duy nhất cho từng đối tượng và là một chuỗi

Sau khi chạy đoạn mã trên, một tệp được tạo trong thư mục làm việc của tôi chứa cả đối tượng priuscamaro

Python lưu đối tượng vào tệp

 

Phương pháp 2. Viết JSON vào một tệp bằng Python bằng json. bãi rác()

Một cách khác để ghi JSON vào tệp là sử dụng json. Phương thức dump() Gói JSON có chức năng “dump” trực tiếp ghi từ điển vào một tệp ở dạng JSON mà không cần chuyển đổi nó thành một đối tượng JSON thực. Cần 2 tham số

  • từ điển – tên của từ điển sẽ được chuyển đổi thành đối tượng JSON
  • con trỏ tệp – con trỏ của tệp được mở ở chế độ ghi hoặc nối thêm

Python3




=3

=4

 

 

import json

 

________số 8_______

dictionary= {

    "name":"sathiyajith"json0

    json2_______14_______7_______4json0

    json7_______14_______7_______9json0

    # Data to be written2_______14_______# Data to be written4

# Data to be written5

 

dictionary4dictionary5_______9_______6dictionary7json0dictionary9=0

    "name"9

đầu ra.  

Python lưu đối tượng vào tệp

 

Đọc JSON từ một tệp bằng Python

Deserialization ngược lại với Serialization, tôi. e. chuyển đổi các đối tượng JSON thành các đối tượng Python tương ứng của chúng. Phương thức load() được sử dụng cho nó. Nếu bạn đã sử dụng dữ liệu JSON từ một chương trình khác hoặc lấy nó dưới dạng định dạng chuỗi của JSON, thì nó có thể dễ dàng được giải tuần tự hóa bằng load(), thường được sử dụng để tải từ một chuỗi, nếu không, đối tượng gốc nằm trong danh sách hoặc .  

Đọc JSON từ một tệp bằng cách sử dụng json. trọng tải()

Gói JSON có json. hàm load() tải nội dung JSON từ tệp JSON vào từ điển. Nó nhận một tham số

Cách tốt nhất để lưu các đối tượng trong Python là gì?

1. Sử dụng Pickle để lưu trữ các đối tượng Python . Nếu chúng ta muốn mọi thứ đơn giản, chúng ta có thể sử dụng mô-đun pickle, đây là một phần của thư viện chuẩn để lưu dữ liệu trong Python. Chúng ta có thể “chọn” các đối tượng Python vào một tệp pickle mà chúng ta có thể sử dụng để lưu/tải dữ liệu.

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

Pickling là một phương thức để chuyển đổi một đối tượng (danh sách, dict, v.v.) thành tệp và ngược lại . Ý tưởng là lưu một hoặc nhiều đối tượng trong một tập lệnh và tải chúng vào một tập lệnh khác. Bạn cũng có thể sử dụng nó để lưu trạng thái chương trình hoặc trò chơi. Chúng tôi sẽ lưu và tải bằng tệp nhị phân, vì điều này giúp tiết kiệm dung lượng ổ đĩa.

Dưa chua có tốt trong Python không?

Nhược điểm-1. Dưa chua không an toàn .

Sự thay thế của dưa chua trong Python là gì?

Một lựa chọn thay thế là cPickle . Nó gần giống với pickle , nhưng được viết bằng C, giúp nó nhanh hơn tới 1000 lần. Tuy nhiên, đối với các tệp nhỏ, bạn sẽ không nhận thấy sự khác biệt về tốc độ. Cả hai đều tạo ra các luồng dữ liệu giống nhau, có nghĩa là Pickle và cPickle có thể sử dụng cùng một tệp.