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

Python CSV Writer始终跳过最后15-30行问题求助

问题解决:CSV文件末尾行丢失

你的问题根源是文件未正确关闭,导致内存缓冲区的剩余数据未写入磁盘。Python文件写入默认采用缓冲机制,直接open文件后未关闭时,程序结束前部分数据可能还留在内存缓冲区,没同步到磁盘,就出现了末尾行丢失的情况。

修复方案1:使用with语句(推荐)

with语句会自动在代码块结束后关闭文件,确保所有数据都写入磁盘:

import csv

with open("one_hot_encoded.csv", 'w', newline='') as f:
    writer = csv.writer(f)
    counter = 0
    for row in data:
        counter += 1
        writer.writerow([counter, row])
print(counter)

注:添加newline=''是csv模块官方推荐写法,可避免Windows系统下生成额外空行。

修复方案2:手动关闭文件

若不想用with,需手动调用close()方法确保缓冲区数据写入磁盘:

import csv

f = open("one_hot_encoded.csv", 'w', newline='')
writer = csv.writer(f)
counter = 0
for row in data:
    counter += 1
    writer.writerow([counter, row])
f.close()  # 必须调用此方法,触发缓冲区数据写入磁盘
print(counter)

计数器显示正确的原因

计数器仅统计循环执行次数,说明writerow确实被调用,但数据只是写入了内存缓冲区,未同步到磁盘文件,因此文件中看不到这些行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:01:09