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 Show 1. Sử dụng Pickle để lưu trữ các đối tượng PythonNế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ụcNế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ụcNế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. |