Мне нужна некоторая помощь str и StringVar

#python #tkinter

#python #tkinter

Вопрос:

Я пытаюсь создать программу, которая получает пароль и имя пользователя, используя запись tkinter, а затем сохраняет его во внешнем файле. Вот что у меня есть до сих пор:

 def validateLogin(username, password):
    filename = input("What is your first name?: ")
    c = open(filename, "w");
    print("username entered :", username.get())
    print("password entered :", password.get())
    c.write(username)
    return
 

. Это как раз та часть, с которой у меня сейчас проблемы.

Комментарии:

1. «У кого-нибудь есть какие-нибудь идеи?» — на первый взгляд этот код выглядит нормально. Вы должны просто убедиться, что закрыли файл после записи. В чем «проблема», с которой вы столкнулись?

2. Он продолжает выдавать мне сообщение об ошибке, в котором говорится, что write() это должно быть str, а не stringvar

3. Ах, тогда вы должны написать username.get() вместо этого

4. Это когда он запрашивает ввод или в c.write?

Ответ №1:

c.write(username) пытается записать объект типа StringVar , но файлы, открытые c = open(filename, "w") только с помощью работы с текстом, также известные как . str

Чтобы извлечь строку из a StringVar , используйте get , как вы использовали ранее в своем коде:

 c.write(username.get())
c.close() # don't forget to close the file