用xlsxwriter写xlsx文件内存泄漏

在大规模数据(10000行*7000列)用xlsxwriter写入excel的时候会出现内存报错,

#写入excel
def write_excel_xlsx(file_name,value):
    workbook = xlsxwriter.Workbook(file_name) # 创建工作表
    worksheet = workbook.add_worksheet('sheet1') # 写单元格
    index=len(value)
    for i in range(0, index):
        worksheet.write_row(i, 0,value[i]) # 写列
        print i
    workbook.close()
    print u"xlsx格式表格写入数据成功!"

在这里插入图片描述
程序运行时,内存急速飙升,当飙到1300M左右时就报错。查了下,说32位python的内存限制是2G,超过2G就报错,64位的python则没有限制。可是一个写操作为什么会这么耗内存呢?难道是大家说的python的内存释放机制有缺陷,于是研究了下del函数和gc机制,并没有搞清楚怎么用到我这里。

于是朋友建议没事不要瞎操纵excel,让我写csv好了
于是换成了写csv的代码,爆内存的问题就没有了

#写入csv
def write_csv(file_name,value):
    out = open(file_name,'ab+')
    out.write(codecs.BOM_UTF8)
    csv_write = csv.writer(out,dialect='excel')
    index=len(value)
    for i in range(0, index):
        csv_write.writerow(value[i])
        #print i  
    out.close()
    print u"csv格式表格写入数据成功!"

但是又出现了新的错误,计算tfidf后矩阵的赋值运算有报内存错误

transformer=TfidfTransformer
tfidf=transformer().fit_transform(X)
weight=tfidf.toarray()

经过我的多次运行,发现这个程序很抽风,weight=tfidf.toarray()这里报内存错误有时候报有时候不报!第一次运行的时候报错了,后面几次运行都没报错了!迷之不解!

**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值