Lưu () trong python là gì?

Khi chúng tôi làm việc trên các ứng dụng Python, chúng tôi sẽ xử lý trực tiếp các đối tượng Python, vì mọi thứ đều là một đối tượng trong Python. Hãy xem xét một số cách mà chúng ta có thể lưu trữ chúng một cách dễ dàng

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

Vì vậy, nếu bạn có một đối tượng tùy chỉnh mà bạn có thể cần lưu trữ/truy xuất, bạn có thể sử dụng định dạng này

import pickle

class MyClass():
    def __init__(self, param):
        self.param = param

def save_object(obj):
    try:
        with open("data.pickle", "wb") as f:
            pickle.dump(obj, f, protocol=pickle.HIGHEST_PROTOCOL)
    except Exception as ex:
        print("Error during pickling object (Possibly unsupported):", ex)

obj = MyClass(10)
save_object(obj)

Nếu bạn chạy tập lệnh này, bạn sẽ thấy một tệp có tên là data.pickle, tệp này chứa dữ liệu đã lưu

Để tải lại cùng một đối tượng, chúng ta có thể sử dụng pickle.load() bằng cách sử dụng logic tương tự

import pickle

class MyClass():
    def __init__(self, param):
        self.param = param

def load_object(filename):
    try:
        with open(filename, "rb") as f:
            return pickle.load(f)
    except Exception as ex:
        print("Error during unpickling object (Possibly unsupported):", ex)

obj = load_object("data.pickle")

print(obj.param)
print(isinstance(obj, MyClass))

đầu ra

10
True

Chúng tôi vừa truy xuất thành công dữ liệu cũ của mình

2. Sử dụng Sqlite3 để lưu dữ liệu trong Python liên tục

Nếu bạn muốn sử dụng cơ sở dữ liệu liên tục để lưu dữ liệu trong Python, bạn có thể sử dụng thư viện sqlite3 cung cấp cho bạn các API để sử dụng cơ sở dữ liệu Sqlite

Một lần nữa, đây là một phần của thư viện tiêu chuẩn, vì vậy không cần phải cài đặt bất cứ thứ gì

Tuy nhiên, vì đây là Cơ sở dữ liệu quan hệ nên bạn không thể kết xuất trực tiếp các đối tượng Python như trong pickle

Bạn phải tuần tự hóa và hủy tuần tự hóa chúng thành các loại Cơ sở dữ liệu thích hợp của chúng

Để xem xét một số ví dụ, bạn có thể tham khảo bài viết này về cách sử dụng sqlite trong Python

3. Sử dụng SqliteDict làm bộ đệm liên tục

Nếu bạn thấy việc sử dụng sqlite3 quá tẻ nhạt, thì có một giải pháp tốt hơn nhiều. Bạn có thể sử dụng

import pickle

class MyClass():
    def __init__(self, param):
        self.param = param

def load_object(filename):
    try:
        with open(filename, "rb") as f:
            return pickle.load(f)
    except Exception as ex:
        print("Error during unpickling object (Possibly unsupported):", ex)

obj = load_object("data.pickle")

print(obj.param)
print(isinstance(obj, MyClass))
1 để lưu trữ dữ liệu liên tục và điều này sử dụng nội bộ cơ sở dữ liệu sqlite3 để xử lý việc lưu trữ

Bạn phải cài đặt gói này bằng pip

pip install sqlitedict

Điều duy nhất bạn cần lưu ý là bạn cần sử dụng ánh xạ

import pickle

class MyClass():
    def __init__(self, param):
        self.param = param

def load_object(filename):
    try:
        with open(filename, "rb") as f:
            return pickle.load(f)
    except Exception as ex:
        print("Error during unpickling object (Possibly unsupported):", ex)

obj = load_object("data.pickle")

print(obj.param)
print(isinstance(obj, MyClass))
3 để lưu trữ/truy xuất dữ liệu, giống như từ điển

Đây là một ví dụ rất đơn giản sử dụng đối tượng

import pickle

class MyClass():
    def __init__(self, param):
        self.param = param

def load_object(filename):
    try:
        with open(filename, "rb") as f:
            return pickle.load(f)
    except Exception as ex:
        print("Error during unpickling object (Possibly unsupported):", ex)

obj = load_object("data.pickle")

print(obj.param)
print(isinstance(obj, MyClass))
4

from sqlitedict import SqliteDict

class MyClass():
    def __init__(self, param):
        self.param = param

def save(key, value, cache_file="cache.sqlite3"):
    try:
        with SqliteDict(cache_file) as mydict:
            mydict[key] = value # Using dict[key] to store
            mydict.commit() # Need to commit() to actually flush the data
    except Exception as ex:
        print("Error during storing data (Possibly unsupported):", ex)

def load(key, cache_file="cache.sqlite3"):
    try:
        with SqliteDict(cache_file) as mydict:
            value = mydict[key] # No need to use commit(), since we are only loading data!
        return value
    except Exception as ex:
        print("Error during loading data:", ex)

obj1 = MyClass(10)
save("MyClass_key", obj1)

obj2 = load("MyClass_key")

print(obj1.param, obj2.param)
print(isinstance(obj1, MyClass), isinstance(obj2, MyClass))

đầu ra

________số 8_______

Thật vậy, chúng ta vừa tải thành công đối tượng Python của mình. Nếu bạn để ý,

import pickle

class MyClass():
    def __init__(self, param):
        self.param = param

def load_object(filename):
    try:
        with open(filename, "rb") as f:
            return pickle.load(f)
    except Exception as ex:
        print("Error during unpickling object (Possibly unsupported):", ex)

obj = load_object("data.pickle")

print(obj.param)
print(isinstance(obj, MyClass))
1 sẽ tự động tạo một cơ sở dữ liệu
import pickle

class MyClass():
    def __init__(self, param):
        self.param = param

def load_object(filename):
    try:
        with open(filename, "rb") as f:
            return pickle.load(f)
    except Exception as ex:
        print("Error during unpickling object (Possibly unsupported):", ex)

obj = load_object("data.pickle")

print(obj.param)
print(isinstance(obj, MyClass))
6, nếu nó không tồn tại, và sau đó sử dụng nó để lưu trữ/tải dữ liệu

Việc sử dụng chức năng lưu trong Python là gì?

Phương thức Wand save() trong Python . hàm save() lưu hình ảnh vào tệp hoặc tên tệp. Nó lưu hình ảnh được thao tác cuối cùng trong đĩa của bạn. Whenever we manipulate an image and want to preserve image for further image, we use save() function. save() function saves the image into the file or filename. It saves the final manipulated image in your disk.

Có lệnh lưu trong Python không?

Nội dung của cửa sổ Python có thể được lưu vào tệp Python hoặc tệp văn bản. Nhấp chuột phải vào cửa sổ Python và chọn Lưu dưới dạng để lưu mã của bạn dưới dạng tệp Python (. py) hoặc tệp Văn bản (. txt).

Lưu #@ có nghĩa là gì trong Python?

"Lưu ý rằng nhận xét #@save là một dấu hiệu đặc biệt trong đó hàm, lớp hoặc câu lệnh sau đây được lưu trong gói d2l để sau này chúng có thể được gọi trực tiếp (e.g., d2l. use_svg_display()) without being redefined."

Numpy save hoạt động như thế nào?

numpy. hàm save() được sử dụng trong ngôn ngữ mã hóa Python để lưu một mảng riêng đang lưu trữ một tập hợp dữ liệu ở định dạng npy để đảm bảo rằng dữ liệu được lưu trữ trong một tệp nằm trong đĩa cứng . .