Найти - Пользователи
Полная версия: a bytes-like object is required, not 'str'
Начало » Центр помощи » a bytes-like object is required, not 'str'
1
Fedy1661
Никак не могу найти причину в ошибке, хелп
builtins.TypeError: a bytes-like object is required, not ‘str’
 def save():
    global logger
    logger=[]    
    passwordik = set(glob.glob('logins.txt'))
    checker = set(["logins.txt"])
    if passwordik != checker:
        messagebox.showinfo("Информация", "Не найден файл logins.txt\nСоздание..")
        file = open('logins.txt', "wt")
        pickle.dump(logger, file)
        file.close()
        log()
    else:
        file = open('logins.txt', "w+")
        logger = pickle.load(file) # Выделяется эта строка
        file.close()        
        log()
....
marvellik
вы все никак не разберетесь
JOHN_16
Вот это знатнийший говнокод =) прям клад. Чего только вот это строка стоит
marvellik
set(glob.glob('logins.txt'))
Ну да ладно, и на это бывают причины? когда ты начинающий и из средств программирования у тебя отрывки код, как правило из StackOverflow.com
Ну а по делу, во первых ВСЕГДА нужо показывать полный traceback ошибки, а во вторых думаю что pickle не хочет строки, а хочет байтовые объекты. Поэтому для начала нужно файлы открывать в бинарном режиме ‘wb’ и соответственно строки кодировать в байты с помощью encode() метода строк.
Fedy1661
JOHN_16
Вот это знатнийший говнокод прям клад. Чего только вот это строка стоит
Так правильнее?
 def save():
    if os.path.exists("logins.txt"):
       save2()
    else:
        messagebox.showinfo("Информация", "Не найден файл logins.txt\nСоздание..")
        file = open("logins.txt", "wb")
        file.close()
        save2()  
marvellik
так лучше
  def save():
    if not os.path.exists("logins.txt"):
        messagebox.showinfo("Информация", "Не найден файл logins.txt\nСоздание..")
        file = open("logins.txt", "wb")
        file.close()
    save2()
а вообще для вашего кода это все пишется в функции регистрации. то есть запускается ваша прога сразу с окном входа, после ввода логина и пароля проверяется наличие файла данных если его нет или есть но нет такого пользователя то выводиться инфа такого пользователя нет и вызывается функция регистрации из которой этот файл и создается с данными
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