使用python处理大的CSV文件

老头所在的部门经常要搞点数据分析,现在业务越来越多,价格越来越低,不分析,估计内裤都要赔给别人了。
氮素,现在CSV为什么都这么大了,啊啊啊……
没有2G都不好意思出来见人,还特末是一个季度的,啊啊啊……
也不知是多少条内容。
部门小伙伴用可怜的4G内存老电脑,使用excel打了半天,最后出现一片空白。
然后,他们又来找万能的老头想点办法。
老头想了想,估计又是那个excel不能打开超过64万或100万(根据版本不同)的限制。
那就搞个小程序拆开嘛。

#coding=utf-8
file_name = 'E:\abc.csv'
with open(file_name, 'r',encoding='GB18030') as f:
    csv_file = f.readlines()
    print(len(csv_file))
    linesPerFile = 1000000
    filecount = 1
    for i in range(0, len(csv_file), linesPerFile):
        with open(file_name[:-4] + '_' + str(filecount) + '.csv', 'w+',encoding='GB18030') as f1:
            if filecount > 1:
                f1.write(csv_file[0])
            f1.writelines(csv_file[i:i+linesPerFile])
            filecount += 1

本程序可以把先找出abc.csv有多少条,然后按100万条为限,把原文件拆成abc_1.csv、abc_2.csv……。搞完收工。
另外提示一下,因为老头公司系统导出的csv是按GB18030编码的,如果你们公司是用UTF-8编码,请自行修改相关代码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容