我目前正在逐行写入字典中的 csv 文件。像这样:
writer = csv.writer(open(filename, 'a'))
for key, value in mydict.items():
writer.writerow([key, value])
我的问题是这样的:我的字典变大了(比如~20 MB),并且我的 linux 机器中的堆空间限制了我。因此,我没有在编写字典之前将所有数据累积在字典中,而是在数据可用时立即将数据写入 csv 文件 - 从我的字典(只有一条记录长)。
现在,我看到了另一个问题——时间。由于大量的 IO 操作(写入磁盘的数千行),我的程序运行非常缓慢。
我需要找到一个中间立场。也许,在我的字典中积累 5000 (k,v) 数据并将其写入磁盘,刷新我的字典,等待下一个 5000 (k,v) 对,......继续这个过程。你还有其他建议吗?
简而言之,有没有很好的批量写入文件?
谢谢,PD/