Найти - Пользователи
Полная версия: Не создаётся файл
Начало » Центр помощи » Не создаётся файл
1 2
FishHook
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()
Fedy1661
FishHook
Мне нужно чтобы он записывал данные из переменной e3 и e
marvellik
FishHook
Вот такой код создает файл и записывает в него данные без всяких лишних движений
я полностью согласен но функцию def save() нужно вызвать для создания а у автора кнопка вызывала функцию def check()
Fedy1661
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()
            
Но появилась другая проблема, при вводе пароля и логина он всё время пишет что они неверные

marvellik
Fedy1661
Но программа при проверке логина и пароля пишет, что он неверный
а вы просмотрите что вам извлекает из файла сохранения и с чем вы его сравниваете при проверке
Fedy1661
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")
marvellik
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()
то есть вот такое сравнение ‘ммм@bghtu’ == {'login':'ммм@bghtu' }
Fedy1661
marvellik
if sev_pass == e21.get() and sev_login == e1.get() вы сравниваете строки из окна ввода с данными из файла а в файле вы сохранили словарь
Как это исправить?
marvellik
надо смотреть(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")'''
Fedy1661
marvellik
надо смотреть(print(sev_pass, e21.get() ,sev_login, e1.get()) что лежит переменных перед их сравнением
Разобрался в коде, спасибо большое
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB