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

如何获取matplotlib TextBox的文本并保存到文件,现有代码为何无法运行

问题原因

  • 第一,np.savetxt 不支持直接写入单个字符串。该方法设计用于存储numpy数组类的结构化数据,传入普通字符串时会默认迭代字符串的单个字符写入,要么直接报错,要么输出内容完全不符合预期。
  • 第二,TextBox.on_submit 的触发逻辑和你的需求不匹配。该回调仅会在用户聚焦TextBox后按下回车键时触发,你提到是“按钮按下时触发”,当前绑定逻辑不会响应你自定义的按钮点击动作。

修复方案

场景1:点击自定义按钮时保存文本

不需要绑定on_submit回调,直接在按钮的点击回调中读取info_box.text属性即可拿到TextBox的当前文本,使用原生Python文件操作写入即可:

# 自定义按钮的点击回调函数
def button_click(event):
    # 直接读取TextBox实例的text属性获取完整内容
    info = info_box.text
    # 普通方式写入文本文件
    with open(os.path.join(directory, 'info.txt'), 'w', encoding='utf-8') as f:
        f.write(info)

场景2:仅需要回车触发保存

如果不需要自定义按钮,就是想在TextBox中按下回车时保存内容,直接把原有代码中的np.savetxt替换为原生文件写入即可:

def get_info(text):
    # 回调传入的text参数就是TextBox的当前内容
    with open(os.path.join(directory, 'info.txt'), 'w', encoding='utf-8') as f:
        f.write(text)

info_box.on_submit(get_info)

如果一定要使用np.savetxt写入字符串,需要把字符串放到列表中指定格式化参数:np.savetxt(os.path.join(directory, 'info.txt'), [info], fmt='%s'),但该场景下没必要引入numpy依赖,更推荐原生文件操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:54:04