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

处理大CSV转Xlsx时Python触发0xC0000005崩溃求助

解决大CSV转XLSX时出现0xC0000005错误的思路

硬件排查(优先排查,因笔记本可正常运行)

  • 内存检测:运行mdsched.exe(Windows内置内存诊断工具),选择立即重启并检查问题。0xC0000005本质是内存访问违规,DDR5内存的兼容性故障或硬件损坏是高概率诱因。
  • 硬盘健康检查:用CrystalDiskInfo查看F盘的SMART数据,重点关注重新分配扇区计数、当前待映射扇区数,大文件读写极易触发硬盘潜在故障。
  • CPU稳定性验证:进入BIOS关闭CPU超频/超线程设置,用AIDA64进行10分钟以上的CPU烤机测试,排除CPU散热不足或超频导致的运算异常。

软件层面优化(降低内存压力,尝试绕过硬件异常)

当前代码用openpyxl逐行写入,大文件会持续占用内存,试试以下更高效的方案:

方案1:用pandas分块处理

import pandas as pd

def csv_to_xlsx_chunked(csv_file, xlsx_file, chunk_size=10000):
    writer = pd.ExcelWriter(xlsx_file, engine='openpyxl')
    for i, chunk in enumerate(pd.read_csv(csv_file, chunksize=chunk_size, encoding='utf-8')):
        chunk.to_excel(writer, sheet_name='Sheet1', startrow=i*chunk_size, index=False, header=(i==0))
    writer.close()

csv_file_path = 'F:\\1.csv'  
xlsx_file_path = 'F:\\data.xlsx'  
csv_to_xlsx_chunked(csv_file_path, xlsx_file_path)

方案2:改用xlsxwriter库

xlsxwriter的写入机制更轻量化,内存占用更低:

import csv
import xlsxwriter

def csv_to_xlsx_xlsxwriter(csv_file, xlsx_file):
    workbook = xlsxwriter.Workbook(xlsx_file)
    worksheet = workbook.add_worksheet('Sheet1')

    with open(csv_file, 'r', newline='', encoding='utf-8') as file:
        reader = csv.reader(file)
        for row_num, row in enumerate(reader):
            worksheet.write_row(row_num, 0, row)
    workbook.close()

csv_file_path = 'F:\\1.csv'  
xlsx_file_path = 'F:\\data.xlsx'  
csv_to_xlsx_xlsxwriter(csv_file_path, xlsx_file_path)

系统设置调整

  • 调整虚拟内存:右键此电脑→属性→高级系统设置→高级→性能设置→高级→虚拟内存,设置为系统管理的大小,避免内存不足引发的访问异常。
  • 临时关闭实时杀毒:大文件读写时,杀毒软件的实时扫描可能干扰内存访问,临时关闭Windows Defender实时保护后重试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:51:07