【发布时间】:2019-05-29 03:52:19
【问题描述】:
我正在尝试将大量 numpy nd_arrays 写入磁盘。
列表长约 50000 个元素
每个元素都是一个大小为 (~2048,2) 的整数的 nd_array。数组有不同的形状。
我(目前)使用的方法是
@staticmethod
def _write_with_yaml(path, obj):
with io.open(path, 'w+', encoding='utf8') as outfile:
yaml.dump(obj, outfile, default_flow_style=False, allow_unicode=True)
我也试过泡菜,它也给出了同样的问题:
在小型列表(约 3400 长)上,这工作正常,完成速度足够快(
在大约 6000 个长列表中,大约 2 分钟后完成。
当列表变大时,该过程似乎没有做任何事情。 RAM 或磁盘活动没有变化。
30 分钟后我停止等待。
在强制停止进程后,文件突然变得非常大(~600MB)。 不知道写完没。
写这么大的列表的正确方法是什么,知道他是否写成功,如果可能的话,知道写/读什么时候完成?
如何调试进程似乎挂起时发生的情况?
我不想在我的代码中手动分解和组装列表,我希望序列化库能够为我做到这一点。
【问题讨论】:
标签: python file serialization yaml pickle