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! 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:1. Sử dụng dưa chua để lưu trữ các đối tượng Python
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.