老頭所在的部門經(jīng)常要搞點(diǎn)數(shù)據(jù)分析,現(xiàn)在業(yè)務(wù)越來越多新啼,價(jià)格越來越低赡模,不分析,估計(jì)內(nèi)褲都要賠給別人了师抄。
氮素漓柑,現(xiàn)在CSV為什么都這么大了,啊啊啊……
沒有2G都不好意思出來見人叨吮,還特末是一個(gè)季度的辆布,啊啊啊……
也不知是多少條內(nèi)容。
部門小伙伴用可憐的4G內(nèi)存老電腦茶鉴,使用excel打了半天锋玲,最后出現(xiàn)一片空白。
然后涵叮,他們又來找萬能的老頭想點(diǎn)辦法惭蹂。
老頭想了想,估計(jì)又是那個(gè)excel不能打開超過64萬或100萬(根據(jù)版本不同)的限制割粮。
那就搞個(gè)小程序拆開嘛盾碗。
#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……。搞完收工。
另外提示一下航缀,因?yàn)槔项^公司系統(tǒng)導(dǎo)出的csv是按GB18030編碼的商架,如果你們公司是用UTF-8編碼,請自行修改相關(guān)代碼芥玉。