Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 4, 2017 08:38:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не создаётся файл

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)

Офлайн

#2 Ноя. 4, 2017 08:42:07

Fedy1661
Зарегистрирован: 2017-10-29
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Не создаётся файл

FishHook
Мне нужно чтобы он записывал данные из переменной e3 и e

Офлайн

#3 Ноя. 4, 2017 08:45:17

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Не создаётся файл

FishHook
Вот такой код создает файл и записывает в него данные без всяких лишних движений
я полностью согласен но функцию def save() нужно вызвать для создания а у автора кнопка вызывала функцию def check()

Офлайн

#4 Ноя. 4, 2017 08:51:47

Fedy1661
Зарегистрирован: 2017-10-29
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Не создаётся файл

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()
            
Но появилась другая проблема, при вводе пароля и логина он всё время пишет что они неверные

Офлайн

#5 Ноя. 4, 2017 08:52:44

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Не создаётся файл

Fedy1661
Но программа при проверке логина и пароля пишет, что он неверный
а вы просмотрите что вам извлекает из файла сохранения и с чем вы его сравниваете при проверке

Отредактировано marvellik (Ноя. 4, 2017 08:53:12)

Офлайн

#6 Ноя. 4, 2017 08:55:45

Fedy1661
Зарегистрирован: 2017-10-29
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Не создаётся файл

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)

Офлайн

#7 Ноя. 4, 2017 09:13:59

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Не создаётся файл

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' }

Отредактировано marvellik (Ноя. 4, 2017 09:15:44)

Офлайн

#8 Ноя. 4, 2017 09:16:12

Fedy1661
Зарегистрирован: 2017-10-29
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Не создаётся файл

marvellik
if sev_pass == e21.get() and sev_login == e1.get() вы сравниваете строки из окна ввода с данными из файла а в файле вы сохранили словарь
Как это исправить?

Офлайн

#9 Ноя. 4, 2017 09:25:41

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Не создаётся файл

надо смотреть(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")'''

Офлайн

#10 Ноя. 4, 2017 09:37:34

Fedy1661
Зарегистрирован: 2017-10-29
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Не создаётся файл

marvellik
надо смотреть(print(sev_pass, e21.get() ,sev_login, e1.get()) что лежит переменных перед их сравнением
Разобрался в коде, спасибо большое

Отредактировано Fedy1661 (Ноя. 4, 2017 09:46:40)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version