Cách lưu đầu vào trong python

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à

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

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))
2 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

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

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

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

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 quá tẻ nhạt, 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
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 để 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

Đầu vào được lưu trữ trong Python như thế nào?

Có hai chức năng có thể được sử dụng để đọc dữ liệu hoặc đầu vào từ người dùng trong python. raw_input() và input() . Các kết quả có thể được lưu trữ vào một biến. raw_input() – Nó đọc đầu vào hoặc lệnh và trả về một chuỗi. input() – Đọc đầu vào và trả về một loại python như list, tuple, int, v.v.

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

Hàm Save() được dùng để lưu một mảng vào tệp nhị phân trong NumPy. định dạng npy .

Đầu vào của người dùng có luôn được lưu trong Python không?

Đầu vào được lưu tự động dưới dạng chuỗi . Do đó, trước khi thực hiện bất kỳ phép toán số học nào như cộng và chia, chúng ta cần chuyển đổi đầu vào thành số nguyên.