You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现PySimpleGUI中Multiline组件内容自动保存为txt文件

PySimpleGUI Multiline内容自动保存为TXT的实现方法

你可以直接在事件循环结束、窗口关闭前读取Multiline组件内容写入本地文件,具体实现逻辑如下:

  • 首先调用window['_LOG_'].get()即可拿到该组件内的全部文本,会保留原有的换行、空格格式
  • 调用Python原生文件操作将拿到的文本写入.txt文件即可
  • 注意保存逻辑要放在window.close()之前执行,否则窗口销毁后无法读取组件内容

你可以参考下面的完整示例代码:

import PySimpleGUI as sg

# 布局定义,修正了你原代码里多出来的右括号笔误
layout = [
    [sg.Multiline(enter_submits=True, key='_LOG_', size=(60, 20))],
    [sg.Button('开始运行'), sg.Button('退出')]
]

window = sg.Window('日志保存示例', layout)

while True:
    event, values = window.read()
    if event in (sg.WIN_CLOSED, '退出'):
        # 退出前执行保存逻辑
        log_content = window['_LOG_'].get()
        # 写入txt文件,encoding指定为utf-8避免中文乱码
        with open('运行日志.txt', 'w', encoding='utf-8') as f:
            f.write(log_content)
        break
    if event == '开始运行':
        # 模拟运行过程中写日志
        window['_LOG_'].print('程序启动成功')
        window['_LOG_'].print('正在执行任务1...')
        window['_LOG_'].print('任务1执行完成')
        window['_LOG_'].print('程序运行结束')

window.close()

如果有自定义需求可以调整对应参数:

  • 需要修改保存路径的,把'运行日志.txt'替换为你需要的绝对路径即可,比如Windows下可以写r'D:\日志\程序运行记录.txt'
  • 需要将本次日志追加到已有日志文件末尾的,把文件打开模式'w'改为'a'即可
  • 需要自动生成带时间戳的日志文件名的,可以引入datetime模块生成文件名,避免日志被覆盖

内容的提问来源于stack exchange,提问作者user16755372

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 05:51:00