我有100个.csv文件,每个文件的大小从50到800MB不等。我正在使用此代码将它们加载到内存中:
import csv
import os
import time
mylist = []
start = time.time()
for csv_file in sorted(os.listdir('myfolder')):
with open('myfolder' + csv_file, "r") as inputfile:
data = csv.reader(inputfile)
for row in data:
mylist.append(row[1])
print("elapsed {}".format(time.time()-start))
有了这个代码,在Mac Air M1上需要156秒。这对我来说是个很大的问题,因为我计划用这些数据运行许多测试场景,对于每个场景,我都必须等待数据加载。有没有一些技术或库(panda?(可以用来加速内存加载?
如果您注意到,我只从每行中选择一个特定的值(row[1]
(。我想将mylist
数组存储到mylist.json
文件中,然后每次都加载该文件。加载mylist.json
文件需要35秒,而原始代码需要156秒。仍然缓慢,但进展