Форум сайта python.su
marvellikЭто неправда. Вот такой код создает файл и записывает в него данные без всяких лишних движений
в том что прежде чем открыть файл нужно убедиться что он есть или создать его. я не вникал в ваш код но мне кажется что у вас кнопка зарегистриров. вызывает функцию def check() а создание файла и сохранение идет в def save() но она не вызывается из def check()
import pickle def save(): file = open("logins.txt", "wb") pickle.dump("pass", file) pickle.dump("login", file) file.close() save()
Отредактировано FishHook (Ноя. 4, 2017 08:38:41)
Офлайн
FishHookМне нужно чтобы он записывал данные из переменной e3 и e
Офлайн
FishHookя полностью согласен но функцию def save() нужно вызвать для создания а у автора кнопка вызывала функцию def check()
Вот такой код создает файл и записывает в него данные без всяких лишних движений
Офлайн
marvellikЯ это уже исправил.
else: if e3.get() == e2.get(): e.config(state=DISABLED) reg.config(state=DISABLED) e3.config(state=DISABLED) e2.config(state=DISABLED) b2.config(state=DISABLED) e.config(disabledbackground="white", disabledforeground="black") e3.config(disabledbackground="#32CD32", disabledforeground="black", show="*") e2.config(disabledbackground="#32CD32", disabledforeground="black", show="*") global save save()
Офлайн
Fedy1661а вы просмотрите что вам извлекает из файла сохранения и с чем вы его сравниваете при проверке
Но программа при проверке логина и пароля пишет, что он неверный
Отредактировано marvellik (Ноя. 4, 2017 08:53:12)
Офлайн
marvellikСо сравнением всё в порядке.
def logged(): if sev_pass == e21.get() and sev_login == e1.get(): success = Label(text = "Вы успешно вошли в аккаунт", fg ="green") success.pack() messagebox.showinfo("Успешно", "Вы вошли в аккаунт.") e1.config(disabledbackground="green") e21.config(disabledbackground="green") else: messagebox.showerror("Ошибка", "Неверный логин/пароль!") e1.config(background="red") e21.config(background="red")
Отредактировано Fedy1661 (Ноя. 4, 2017 09:06:07)
Офлайн
if sev_pass == e21.get() and sev_login == e1.get() вы сравниваете строки из окна ввода с данными из файла а в файле вы сохранили словарь
def save(): sev_pass = {'pass': e3.get()} sev_login = {'login': e.get()} file = open("logins.txt", "wb") pickle.dump(sev_pass, file) pickle.dump(sev_login, file) file.close()
Отредактировано marvellik (Ноя. 4, 2017 09:15:44)
Офлайн
marvellikКак это исправить?
if sev_pass == e21.get() and sev_login == e1.get() вы сравниваете строки из окна ввода с данными из файла а в файле вы сохранили словарь
Офлайн
надо смотреть(print(sev_pass, e21.get() ,sev_login, e1.get()) что лежит переменных перед их сравнением
def logged(): print(sev_pass, e21.get() ,sev_login, e1.get() # тут и смотрим # a эта часть подождет до выяснения ошибки '''if sev_pass == e21.get() and sev_login == e1.get(): success = Label(text = "Вы успешно вошли в аккаунт", fg ="green") success.pack() messagebox.showinfo("Успешно", "Вы вошли в аккаунт.") e1.config(disabledbackground="green") e21.config(disabledbackground="green") else: messagebox.showerror("Ошибка", "Неверный логин/пароль!") e1.config(background="red") e21.config(background="red")'''
Офлайн
marvellikРазобрался в коде, спасибо большое
надо смотреть(print(sev_pass, e21.get() ,sev_login, e1.get()) что лежит переменных перед их сравнением
Отредактировано Fedy1661 (Ноя. 4, 2017 09:46:40)
Офлайн