Hướng dẫn how do i permanently store a variable in python? - làm cách nào để lưu trữ vĩnh viễn một biến trong python?

2

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi hơi mắc kẹt với mã của mình, tôi đang cố gắng tạo một hệ thống đăng nhập trong đó người dùng có thể đăng nhập vào tài khoản của họ và sử dụng các lệnh mà tôi đã đặt, nhưng tôi muốn thêm một số đầu vào để người dùng có thể đăng ký vào hệ thống đăng nhập và sử dụng các lệnh tôi đã đặt. Tôi muốn lưu trữ đầu vào do người dùng thực hiện vĩnh viễn trong một biến khác nhau mỗi lần để khi người dùng khởi động lại mã mã, họ có thể đăng nhập vào hệ thống và họ sẽ không cần đăng ký lại.

Đây là đoạn mã mà tôi đã tạo cho đến nay:

print ["Welcome!"]
print ["Would you like to register"]
loop = True

while [loop == True]:
    username = input ["username: "]
    password = input ["password: "]
    print ["register here if you don't have an account"]
    username1 = input ["name: "]
    print ["this is what you use to login to the system"]
    username2 = input ["username: "]
    username3 = input ["password: "]

    if [username == "rohit" and password == "rodude"] :
        print ["hello and welcome " + username or ]
        loop = False
        loop1 = True

    else:
        print ["invalid username and password"]

    while[loop1 == True]:

        command = str[input[username + "{} > >"]]
        if[command.lower[] == "exit"]:
            loop1=False

        elif[command.lower[] == "hi"]:
            print["Hi " + username + "!"]

        else:
            print ["'" + command + "' is an invalid command!"]

vvvvv

19.2K16 Huy hiệu vàng44 Huy hiệu bạc62 Huy hiệu đồng16 gold badges44 silver badges62 bronze badges

Đã hỏi ngày 2 tháng 7 năm 2014 lúc 18:35Jul 2, 2014 at 18:35

Này các bạn, cách của bạn quá phức tạp, tất cả những gì bạn có thể làm là điều này

    name = open["usernames.txt", "w"] #opens file usernames.txt and gets ready to write to it
file = input["please type some text: "] #asks user for text in code

name.write[file] #writes contents in file to usernames.txt
name.close[] #closes file
open1 = open["usernames.txt", "r"] #opens file to read it
print [open1.read[]] #prints whatever is in the text file

Đã trả lời ngày 20 tháng 10 năm 2015 lúc 19:13Oct 20, 2015 at 19:13

rodude123rodude123rodude123

3013 Huy hiệu bạc17 Huy hiệu đồng3 silver badges17 bronze badges

Bạn không thể sử dụng các biến để lưu trữ cục bộ. Nếu bạn muốn thông tin tồn tại trên các chương trình chạy, bạn cần lưu trữ nó ở vị trí liên tục - thường là tệp đĩa hoặc cơ sở dữ liệu. Có rất nhiều mô -đun có sẵn để làm cho điều này dễ dàng hơn, Pickle [như được ghi nhận trong phản hồi của KlashXX] là một điều tuyệt vời cho các kịch bản đơn giản.

Đã trả lời ngày 2 tháng 7 năm 2014 lúc 18:38Jul 2, 2014 at 18:38

Chris Tavareschris TavaresChris Tavares

Phim thương hiệu vàng 27,9k33 gold badges48 silver badges63 bronze badges

Xin chào người đọc! Trong hướng dẫn này, chúng tôi sẽ xử lý cách chúng tôi có thể lưu dữ liệu một cách hiệu quả 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 cùng nhìn vào 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 dưa chua để lưu trữ các đối tượng Python

Nếu chúng ta muốn giữ 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 tiêu chuẩn để lưu dữ liệu trong Python.

Chúng ta có thể sử dụng các đối tượng python Pickle Pickle 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ẽ nhận thấy một tệp có tên data.pickle, 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 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

Chúng tôi chỉ cần lấy dữ liệu cũ của chúng tôi thành công!

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 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ệ, bạn có thể 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 bỏ chúng vào 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ề việc sử dụng SQLite trong Python.

3. Sử dụng sqlitedict làm bộ nhớ cache liên tục

Nếu bạn thấy 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

    name = open["usernames.txt", "w"] #opens file usernames.txt and gets ready to write to it
file = input["please type some text: "] #asks user for text in code

name.write[file] #writes contents in file to usernames.txt
name.close[] #closes file
open1 = open["usernames.txt", "r"] #opens file to read it
print [open1.read[]] #prints whatever is in the text file
0 để lưu trữ dữ liệu liên tục và điều này sử dụng 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:

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

    name = open["usernames.txt", "w"] #opens file usernames.txt and gets ready to write to it
file = input["please type some text: "] #asks user for text in code

name.write[file] #writes contents in file to usernames.txt
name.close[] #closes file
open1 = open["usernames.txt", "r"] #opens file to read it
print [open1.read[]] #prints whatever is in the text file
2 để lưu trữ / truy xuất dữ liệu, giống như một từ điển!

Ở đây, một ví dụ rất đơn giản sử dụng thể hiện

    name = open["usernames.txt", "w"] #opens file usernames.txt and gets ready to write to it
file = input["please type some text: "] #asks user for text in code

name.write[file] #writes contents in file to usernames.txt
name.close[] #closes file
open1 = open["usernames.txt", "r"] #opens file to read it
print [open1.read[]] #prints whatever is in the text file
3.

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

Thật vậy, chúng tôi đã tải thành công đối tượng Python của chúng tôi! Nếu bạn nhận thấy,

    name = open["usernames.txt", "w"] #opens file usernames.txt and gets ready to write to it
file = input["please type some text: "] #asks user for text in code

name.write[file] #writes contents in file to usernames.txt
name.close[] #closes file
open1 = open["usernames.txt", "r"] #opens file to read it
print [open1.read[]] #prints whatever is in the text file
0 sẽ tự động tạo cơ sở dữ liệu
    name = open["usernames.txt", "w"] #opens file usernames.txt and gets ready to write to it
file = input["please type some text: "] #asks user for text in code

name.write[file] #writes contents in file to usernames.txt
name.close[] #closes file
open1 = open["usernames.txt", "r"] #opens file to read it
print [open1.read[]] #prints whatever is in the text file
5, nếu nó không tồn tại và sau đó sử dụng nó để lưu trữ / tải dữ liệu.

Sự kết luận

Trong bài viết này, chúng tôi đã xem xét cách chúng tôi có thể sử dụng Python để lưu trữ dữ liệu theo những cách khác nhau.

Làm thế nào để bạn lưu trữ các biến trong Python?

Trong một số ngôn ngữ lập trình, bạn phải khai báo một biến trước khi sử dụng chúng hoặc xác định thông tin sẽ được lưu trữ trong đó, ví dụ: một số.Tuy nhiên, trong Python, chúng ta chỉ cần nhập tên của biến của chúng ta, theo sau là một dấu bằng và giá trị để gán cho nó.type the name of our variable, followed by an equals sign and a value to assign to it.

Làm cách nào để lưu một biến duy nhất trong Python?

Trong Python, phương thức Dumps [] được sử dụng để lưu các biến vào tệp Pickle.dumps[] method is used to save variables to a pickle file.

Làm cách nào để lưu dữ liệu đầu vào trong Python?

Để lưu đầu vào của người dùng vào một tệp:..
Sử dụng câu lệnh With Open [] để mở tệp ở chế độ ghi ..
Sử dụng hàm input [] để lấy đầu vào từ người dùng ..
Sử dụng tệp.Viết [] phương thức để ghi đầu vào vào tệp ..
Câu lệnh với câu lệnh tự động đóng tệp ..

Bài Viết Liên Quan

Chủ Đề