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

Python3写入文本文件后读取异常求助:网格数据读写问题

解决文件写入后读取异常的问题

我一眼就看出问题出在两个地方:写入时没加换行符,读取时没处理换行残留,咱们一步步来修:

问题分析

  1. 写入的内容挤成了一团
    你创建新文件时,循环三次写"0,0,0"但没加换行符\n,结果文件里的内容是0,0,00,0,00,0,0——三行内容硬凑成了一行。后续读取时,这一整行被分割成9个元素,完全不是你想要的三个子列表。

  2. 读取时带了换行符尾巴
    读取文件的每一行时,行尾会自带换行符\n,直接用line.split(",")会导致最后一个元素变成"0\n",而不是干净的"0"。

修正后的代码

import os

fname = "grid.txt"  # 替换成你的实际文件名
data = []

if os.path.isfile(fname):
    with open(fname, "r") as f:
        for line in f:
            # 先去掉换行符和前后空白,再分割
            cleaned_line = line.strip()
            if cleaned_line:  # 跳过可能存在的空行
                row = cleaned_line.split(",")
                data.append(row)
else:
    # 用with语句自动管理文件,不用手动close
    with open(fname, "w") as f:
        for i in range(3):
            # 每行末尾加换行符,确保内容分三行存
            f.write("0,0,0\n")
            data.append(["0", "0", "0"])

print(data)

关键修正点

  • 写入时给每行加\n,生成的文件内容会是正常的三行:
    0,0,0
    0,0,0
    0,0,0
    
  • 读取时用line.strip()清理换行符和空白,保证分割后的元素干净;同时加了空行判断,避免文件有空行时生成空列表。
  • 写入文件也改用with语句,它会自动帮你关闭文件,比手动调用f.close()更稳妥,不会因为忘记关闭文件导致数据丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:03:22