问题:对于一个数据量很大的csv文件进行操作时,一次性全部读取出来再出来可以很耗时间和资源;
解决方法:1、可以考虑分片读取(一片500或1000或者视情况而定 ),按照片数依次处理;
2、考虑多线程,将数据一次性读出,然后分多线程同时处理。
举例说明:(1)分片读取文件并处理:
# 分片处理csv文件
def chunk_csv(file1, chunk_size=500):
"""
输入csv文件、一片包含的数量(可自定义)
"""
chunk = [] #存放500个数据,每个是一行,dict格式
id_list = []
time_start = time.time()
with open(file1, "r", newline="", encoding="utf-8") as csvfile:
csvreader = csv.reader(csvfile)
cnt = 0
fieldnames = ["name1","name2"] #列名
for row in csvreader:
if row[0] == "name1":
continue
try:
tmpdict = {fieldnames[idx]: row[idx] f