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

Python循环写入大矩阵元素至文件仅保留最后内容的问题求助

解决大型矩阵元素写入文件仅保留最后一项的问题

嘿,这个问题我之前也碰到过!核心原因是你每次循环都用"w"模式打开文件——这个模式会在打开时直接清空整个文件的内容,所以每一次写入都会把之前的内容完全覆盖,最后自然就只剩最后一次写入的数据了。

快速修复方案

我们只需要把文件打开的操作移到循环外面,这样就能持续写入而不会覆盖之前的内容:

l = 20
j = 1
delt = -1
# 一次性打开文件,用"w"模式初始化,循环内直接写入
with open("file.txt", "w") as f:
    for x in range(0, 2**l):
        for y in range(0, l):
            k = (y+1)%l
            if check_nth_bit(x, y) == 0:
                a = [x, x, -j*h/2]
                f.write(f"{a}\n")  # 用f-string格式化,加换行让每条数据单独一行
            else:
                b = [x, x, j*h/2]
                f.write(f"{b}\n")

针对大型数据的额外优化建议

你的数据规模不小(总共有2^20 * 20 = 20,971,520条记录),频繁的单条写入会影响性能,这里给你几个小技巧:

  • 批量写入:先把要输出的内容收集到一个列表中,积累到一定数量后再一次性写入文件,减少I/O操作次数
  • 使用CSV格式:如果后续需要读取这些数据,用csv模块来写入会让数据结构更规范,读取也更方便
  • 考虑二进制文件:如果数据量极大,二进制文件的读写效率会比文本文件高很多,适合大规模数据存储

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:22:31