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

如何将多条带换行的输入写入文本文件且程序重跑时自动覆盖?

问题根因
  • 原代码循环内每次调用open('filename', 'w')时,w写入模式会直接清空文件已有内容再写入,前14次输入的内容都会被后一次的写入操作清空,最终仅保留最后一条输入
  • 循环末尾f = open('filename', "a")仅用追加模式打开文件但无写入操作,属于冗余无效代码
符合需求的修复方案

你的需求是程序重新运行时覆盖原有内容,只需要把文件打开操作移到循环外层,一次性打开后循环写入所有输入即可,推荐使用with上下文管理器自动管理文件资源,无需手动调用close():

# 先以w模式打开文件,启动时直接覆盖原有内容
with open('filename', 'w', encoding='utf-8') as f:
    for i in range(0,15):
        ele = input(f"{i+1}. ")
        f.write(f"{ele}\n")

如果不使用with语法,也可以按如下方式编写:

f = open('filename', 'w', encoding='utf-8')
for i in range(0,15):
    ele = input(str(i + 1) + ". ")
    f.write("%s\n" %(ele))
# 所有内容写入完成后再关闭文件
f.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:27:01