Найти - Пользователи
Полная версия: Не создаётся файл
Начало » Центр помощи » Не создаётся файл
1 2
Fedy1661
Не создаётся новый файл, не могу найти ошибку
Текст ошибки:
Exception in Tkinter callback
Traceback (most recent call last):
File “C:\Users\Fedy\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py”, line 1699, in __call__
return self.func(*args)
File “C:\Users\Fedy\Desktop\незаконченное123.py”, line 31, in <lambda>
reg = Button(root, text=“Зарегистрироваться”, overrelief=“sunken”, command = lambda: check())
File “C:\Users\Fedy\Desktop\незаконченное123.py”, line 97, in check
password()
File “C:\Users\Fedy\Desktop\незаконченное123.py”, line 117, in password
file = open(“logins.txt”, “rb”)
FileNotFoundError: No such file or directory: ‘logins.txt’

 #coding: utf-8
from tkinter import *
from tkinter import messagebox
import pickle
root = Tk()
root.geometry("300x500")
root.title("Вход/регистрация")
def log ():
    global e2
    global e3
    global b2
    global e
    global reg
    t = Label(root, text = "Зарегистрируйтесь для входа", font="Arial 16")
    t.pack()
    t1 = Label(root, text = "Логин:", font="Arial 10")
    t1.pack()
    e = Entry()
    e.pack()
    t2 = Label(root, text = "Пароль:", font="Arial 10")
    t2.pack()
    e2 = Entry(show="*")
    e2.pack()
    t3 = Label(root, text = "Повторите пароль:", font="Arial 10")
    t3.pack()
    e3 = Entry(show="*")
    e3.pack()
    reg = Button(root, text="Зарегистрироваться", overrelief="sunken", command = lambda: check())
    reg.pack()
    b2 = Button(root, text="Раскрыть пароль", command = lambda: offe(), overrelief="sunken")
    b2.pack()
def offe():
    e2.config(show="")
    e3.config(show="")
    b2.config(command = lambda: offe2(), text="Раскрыть пароль")
def offe2():
    e2.config(show="*")
    e3.config(show="*")
    b2.config(command = lambda: offe(), text = "Скрыть пароль")
def check():
    if(e.get() == "" or e3.get() == "" or e2.get() == ""):
        messagebox.showwarning("Ошибка", "Вы должны заполнить все пустые поля.")
        if e.get() == "" and e2.get() == "" and e3.get() == "":
            e.config(bg="orange")
            e2.config(bg="orange")
            e3.config(bg="orange")
        elif e.get() == "" and e2.get() == "":
            e.config(bg="orange")
            e2.config(bg="orange")
            e3.config(bg="white")
        elif e.get() == "" and e3.get() == "":
            e.config(bg="orange")
            e3.config(bg="orange")
            e2.config(bg="white")
        elif e.get() == "":
            e.config(bg="orange")
            e2.config(bg="white")
            e3.config(bg="white")
        elif e2.get() == "" and e3.get() == "":
            e2.config(bg="orange")
            e3.config(bg="orange")
            e.config(bg="white")
        elif e2.get() == "" and e.get() == "":
            e2.config(bg="orange")
            e.config(bg="orange")
            e3.config(bg="white")
        elif e2.get() == "":
            e2.config(bg="orange")
            e.config(bg="white")
            e3.config(bg="white")
        elif e3.get() == "" and e.get() == "":
            e3.config(bg="orange")
            e.config(bg="orange")
            e2.config(bg="white")
        elif e3.get() == "" and e2.get() == "":
            e2.config(bg="orange")
            e3.config(bg="orange")
            e.config(bg="")
        elif e3.get() == "":
            e3.config(bg="orange")
            e2.config(bg="white")
            e.config(bg="white")
    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
            password()
            
        else:        
            e3.config(state=NORMAL)
            e.config(bg="white")
            e2.config(state=NORMAL)
            e3.config(background="red")
            e2.config(background="red")
            messagebox.showerror("Ошибка", "Пароли не совпадают!")
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()
    password()
def password ():
    global sev_pass
    global sev_login
    file = open("logins.txt", "rb")
    sev_pass = pickle.load(file)
    sev_login = pickle.load(file)
    sev_pass, sev_login
    sev_pass = str(sev_pass)
    sev_login = str(sev_login)    
    file.close()
    t1 = Label(root, text = "Вход в систему", font="Arial 16")
    t1.pack()    
    global b2
    global e1
    global e21
    global b21
    t11 = Label(root, text = "Логин:", font="Arial 10")
    t11.pack()
    e1 = Entry()
    e1.pack()
    t21 = Label(root, text = "Пароль:", font="Arial 10")
    t21.pack()
    e21 = Entry(show="*")
    e21.pack()
    reg1 = Button(root, text="Вход", overrelief="sunken", command = lambda: logged())
    reg1.pack()
    b21 = Button(root, text="Раскрыть пароль", command = lambda: offe1(), overrelief="sunken")
    b21.pack()
def offe1():
    e21.config(show="")
    b21.config(command = lambda: offe21(), text="Раскрыть пароль")
def offe21():
    e21.config(show="*")
    b21.config(command = lambda: offe1(), text = "Скрыть пароль")
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")
log()
root.mainloop()
doza_and
Читайте что означают ключи открытия файла “rb”. Файл и не должен создаваться.
А вообще общий совет. Читайте сообщения интерпретатора, там именно об этом и написано.
Fedy1661
doza_and
ключи открытия файла “rb”
А в чем конкретно ошибка в коде?
FishHook
Fedy1661
А в чем конкретно ошибка в коде?
Конкретно в том, что rb - это READ BINARY, если вы открываете файл для чтения, на кой фиг ему создаваться?
Читать до просветления
Fedy1661
FishHook
Есть функция save
     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()
    password()
FishHook
Fedy1661
Что вы хотели этим сказать?
Fedy1661
FishHook
Fedy1661Что вы хотели этим сказать?
В этой функции есть wb, т.е файл должен создаться…
marvellik
Fedy1661
А в чем конкретно ошибка в коде?
в том что прежде чем открыть файл нужно убедиться что он есть или создать его. я не вникал в ваш код но мне кажется что у вас кнопка зарегистриров. вызывает функцию def check() а создание файла и сохранение идет в def save() но она не вызывается из def check() а наверно надо reg = Button(root, text=“Зарегистрироваться”, overrelief=“sunken”, command = lambda: save())

Fedy1661
marvellik
Спасибо большое. Но программа при проверке логина и пароля пишет, что он неверный
FishHook
Fedy1661
сорри не увидел
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