分块读取大文件方法
1 以下两种方法类似,第一种更简洁
两种方法的input类型完全相同,当最后一次不够7行时,两种方法都会取出来
import pandas as pd input = pd.read_csv('input.csv', chunksize= 7) for i in input: # i是一个有7行的块 chunk = function(i) chunk.to_csv('output.csv', mode='a', header=False) del chunk input = pd.read_csv('input.csv', iterator=True) loop = True print('Ready Go!!!') while loop: try: chunk = input.get_chunk(7) chunk.to_csv('output', mode='a', header=None) del chunk except StopIteration: loop = False print('Game Over!!!')
2 利用get_chunck()函数
loop为真时,get_chunck()函数会一直从文件中取数据,直到最后一次try不能执行了,执行except,loop置为假。
app_usage = pd.read_csv('D:\\HUAWEIcompetition\\data\\user_app_usage.csv', iterator=True)
pieceID=0
loop=True
while loop:
try:
dfi = app_usage.get_chunk(10000000)
dfi.columns=['uid','appid','total_usagetime','open_numbers','use_date']
dfi.to_csv('D:\\HUAWEIcompetition\\data\\user_app_usage\\user_app_usage_{}.csv'.format(pieceID),index=False)
pieceID += 1
del dfi
except StopIteration:
loop=False
print('imps_log process finish!')