Как мне написать многострочный ввод в .txt? - PullRequest
0 голосов
/ 04 ноября 2011

Как мне сделать так, чтобы «file.write (repr (fieldNames1))» записывал то, что я ввел в «fieldNames1»?

import easygui

#Multi Enter Box
fieldNames1= ['Situation:(Example: Waiting for a friend who is late.)','Thoughts:(EXAMPLE: My friend Bob is always late!)','Emotions:(EXAMPLE: Mad & Stressed)','Behavior:(EXAMPLE: Arguing with family)']

#Write to file
file = open('Fieldnames test.txt', 'a')
file.write(repr(fieldNames1))
file.close()

Создает файл с именем «Fieldnames test.txt» со следующим текстом независимо от того, что я ввожу в «fieldnNames1».

['Ситуация: (Пример: ожидание друга, который опаздывает.)', «Мысли: (ПРИМЕР: мой друг Боб всегда опаздывает!)», «Эмоции: (ПРИМЕР: Безумный и стрессовый)», «Поведение: (ПРИМЕР: Спор с семья) ']

1 Ответ

2 голосов
/ 04 ноября 2011

Проблема в том, что вызов repr() в списке создаст одну строку из списка.То, что вам нужно, выглядит примерно так:

f = open('output.txt', 'a')
f.write('\n'.join(fieldNames1))
f.close()

Метод write() не создает автоматически новые строки, поэтому у вас есть join() список строк вместе, используя новую строку, подходящую для вашей платформы (такие как \n).Вы можете прочитать больше о файловых объектах в документации Python .

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

...