Сохранение поля ввода Tkinter в текстовый файл

#python #tkinter

#python #tkinter

Вопрос:

Я создал поле ввода:

 
  

Я создал текстовый файл:

    
    save_file.close()


However the data being entered is not saving to the text file. This is being saved:
  

Учетные записи
Объект ввода .!запись>>Объект ввода .!entry2>>

 
Any idea on how to fix this?
  

Ответ №1:

Вам нужно вызвать метод get.

Изменить

 save_file.write(str(username_input_box.get)) 
  

Для

 save_file.write(str(username_input_box.get())) 
  

Поскольку у вас возникли проблемы, я написал очень простую версию вашей программы, которую я протестировал, и она работает. Он записывает текст «Учетные записи» в файл, и при нажатии кнопки он также записывает содержимое поля ввода в файл. Если ваш код по-прежнему не работает, возможно, вам потребуется опубликовать более полный и исполняемый пример вашего кода

 from tkinter import *


def creating_text_file():   
    save_file = open("Accounts.txt", "a")   
    title = "Accounts"   
    line = "n"   
    save_file.write(title)    
    save_file.write(line)   
    save_file.close()

def apending_to_text_file():     
    save_file = open("Accounts.txt", "a")
    save_file.write(str(username_input_box.get()))
    save_file.write("n")
    save_file.close()

root = Tk()
username_input_box = Entry(root, width=30)
username_input_box.grid()
btn = Button(root,text="Press Me",command=apending_to_text_file)
btn.grid()
creating_text_file()

root.mainloop()
  

В качестве улучшения я бы использовал контекстные менеджеры для открытия / закрытия вашего файла. Они выглядят так

 with open("Accounts.txt", "a") as save_file:
    save_file.write("Some random text")
    #No need to close the file as the context manager does this for you
  

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

1. К сожалению, он по-прежнему не работает, когда я открываю текстовый файл, там ничего не сохраняется, и сообщения об ошибке нет. Есть идеи? xx

2. Вы знаете, как заставить кнопку иметь 2 команды? x

3. @Katie010203 Звучит как тема для другого вопроса. Несколько тем в одном вопросе не одобряются