csv excel 对比

本文对比了处理大型Excel文件时CSV与Excel的区别。由于`xlrd`库在加载Excel时会将整个文件放入内存,对于几百兆到几个G的文件存在内存溢出风险,而CSV则更合适。通过实验,相同内容的66MB Excel文件转换为CSV后,CSV在处理大型数据时表现出更好的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对比csv excel 处理

目前项目需要上传非常大的excel文件。几百兆到几个G之间。上传的问题还没有解决。但是load到内存也是个问题。excel 一般使用xlrd 包做解析,第一个操作肯定是open_workbook。但是在open_workbook的时候会把整个文件load 到内存,如果多个文件同时在做处理可能会内存溢出,所以存在很大风险。技术上对比csv. 看看两者个差异。

准备工作

一个比较大的excel 文件 66MB。把它转为csv。(excel 另存为)

python 编码以及准备

相关的库 pip intsall

import csv
import psutil
import xlrd

psutil 是为了获取系统内存等一些状况。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import xlrd
import psutil
import os
import time
import csv
import pandas as pd

G = 1024.0*1024.0*1024.0

def now():
    return time.strftime('%Y-%m-%d-%H:%M:%S', time.localtime(time.time()))


def get_G(memory):
   return round(memory / G, 2)

def show_sys_info():
    info = psutil.virtual_memory()
    print 'now', now()
    print u'内存使用:', get_G(psutil.Process(os.getpid()).memory_info().rss)
    print u'总内存:', get_G(info.total
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值