在循环的每一步中,我都有一些数据,我希望这些数据最终保存在我的硬盘上
单向:
list = []
for i in range(1e10):
list.append(numpy_array_i)
pickle.dump(list, open(self.save_path, "wb"), protocol=4)
但我担心:1_因为列表2_而耗尽了内存,如果某个东西崩溃,所有数据都将丢失。 因此,我还想到了一种实时保存数据的方法,例如:
file = make_new_csv_or_xlsx_file()
for i in range(1e10):
file.write_in_a_new_line(numpy_array_i)
对于这一点,我也担心它可能不会这么快,也不确定最好的工具可能是什么。但openpyxl可能是一个不错的选择
我会尝试使用SQLite,因为它提供了磁盘上的永久存储(>;无数据丢失),但它比您的问题中所示的写入文件更快,并且提供了更简单的数据查找,以防您在上一次运行中有不完整的数据
调整
JOURNAL_MODE
可以进一步提高性能:https://blog.devart.com/increasing-sqlite-performance.html写入
redis
相当快。您可以在第二个进程中读取redis
,然后写入磁盘相关问题 更多 >
编程相关推荐