You need to enable JavaScript to run this app. Python脚本存储输入到文本文件时旧内容被删除的解决方法
优惠活动
大模型
产品
解决方案
定价
更多

Python脚本存储输入到文本文件时旧内容被删除的解决方法

问题产生原因

你代码中原有内容被清空,根源是open('test.txt', 'w')使用的覆盖写入模式:

  • 这个模式的默认行为是,只要目标文件存在,打开时就会立刻清空文件内的所有原有内容,文件大小直接归零,后续所有写入操作都会从文件头部开始执行,完全覆盖之前存储的内容。
对应修复方案

只需要把文件打开模式从w替换为a(追加写入模式),就能实现“保留原有内容、新增内容存到文件末尾”的效果:

  • a模式打开文件时不会触发清空操作,所有新写入的内容会自动接在已有内容的末尾,不会破坏之前存储的历史输入。
  • 如果想最小改动原有代码,只需要把open('test.txt', 'w')里的第二个参数从'w'改成'a'即可,修改后的极简版本代码:
name = input('Enter name: ')
f = open('test.txt', 'a', encoding='utf-8')
f.write(name + '\n')
f.close()

更稳妥的推荐写法

用with上下文管理器替代手动调用f.close()的写法,避免写入过程中出现异常时,文件句柄没被正常关闭、内容缓存没写入磁盘的问题:

name = input('Enter name: ')
with open('test.txt', 'a', encoding='utf-8') as f:
    # 给每条输入加换行符,避免多次运行的内容连成一整行,后续查看时难以区分
    f.write(f"{name}\n")
相关避坑提示
  • 不同打开模式的适用场景要区分清楚:w模式适合每次运行生成全新文件、不需要保留历史内容的场景;a模式适合持续往同一个文件追加存储历史记录的场景,不要混用。
  • 打开文本文件时显式指定encoding='utf-8',可以避免Windows系统下使用默认GBK编码写入中文时出现乱码的跨平台兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 00:15:04