#python #save #multiline #pysimplegui #write
Вопрос:
Я хочу сохранить многострочный (PySimpleGui) в формате .txt.
[sg.Multiline(
enter_submits=True,
key='_LOG_'
))]
Программа записывает в него
window['_LOG_'].print('something')
и когда это будет сделано, он должен автоматически сохранить его в формате .txt.
Ответ №1:
Для этого вы можете использовать свой ключ. Нравится:
import io
with io.open("data.txt", "w", encoding="utf8") as f:
f.write(values['_LOG_'])
f.close()
Комментарии:
1. Да, я уже пробовал это, но это не работает :/
2. =(. Считывает ли ваш цикл значения? Например: окно, событие, значения = sg.read_all_windows()
3. Это работает только в том случае, если содержимое
sg,Multiline
элемента не изменилось после создания события. Открыть файл сwith
инструкцией автоматически закроет файл, поэтомуf.close()
в этом нет необходимости.4. Спасибо за советы!
Ответ №2:
В цикле событий values
содержится содержимое некоторых элементов до ваших действий для этого события, поэтому вы не можете использовать значение values['_LOG_']
для сохранения файла журнала.
Попробуйте использовать метод get
of sg.Multiline
, чтобы получить текущее содержимое sg.Multiline
элемента.
window['_LOG_'].print("Hello World")
with open("LogFile.txt", "wt", encoding='UTF-8') as f:
f.write(window['_LOG_'].get())
Комментарии:
1. Работал на меня. Тх!