Как сохранить записи из полей в текстовый файл? - PullRequest
0 голосов
/ 09 января 2019

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

fields = "First Name", "Last Name", "Email Address", "Username", 
    "Password"


    def fetch(entries):
       for entry in entries:
          field = entry[0]
          text  = entry[1].get()
          print('%s: "%s"' % (field, text)) #i do not need this
          fwu = open('UserData.txt','w')     
          fwu.write(('%s: "%s"' % (field, text))) #here is the 
                                                  #problem    
          fwu.close()

Печать делает правильные вещи:

First Name: "1"
Last Name: "2"
Email Address: "3"
Username: "x"
Password: "y"

Но в текстовом файле сохраняется только последнее поле («у»)

Мне нужно создать программу экзамена для инструментов найма, с регистрацией, логином, учетной записью ... У меня есть другие проблемы, но я буду иметь дело с ними, я надеюсь.

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Он вставляет только последний, потому что он overwrites в файле, который нужно использовать newline, чтобы получить весь контент в записях для вставки в text file

def fetch(entries):
    for entry in entries:
        field = entry[0]
        text = entry[1].get()
        print('%s: "%s"' % (field, text))  # i do not need this
        fwu = open('UserData.txt', 'a')

        fwu.write(field+"\n"+text)  # 

        fwu.close()
0 голосов
/ 09 января 2019

Проблема, с которой вы сталкиваетесь, заключается в том, что вы не предоставляете новую строку в конце своей строки и, вероятно, связаны с тем, как вы открываете и записываете свой текстовый файл для каждой записи.

Вместо этого вы должны открыть файл один раз, а затем написать все с новой строкой в ​​конце каждой строки.

Я предпочитаю использовать with open вместо open и close, поскольку оператор with open автоматически закроется, как только все будет выполнено ниже него.

Попробуйте вместо этого:

fields = "First Name", "Last Name", "Email Address", "Username", "Password"

    def fetch(entries):
        with open('UserData.txt', 'w') as fwu:
            for entry in entries:
                field = entry[0]
                text  = entry[1].get()
                print('{}: "{}"\n'.format(field, text))
                fwu.write('{}: "{}"\n'.format(field, text))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...