np.fromfile文件大小的最大限制是多少?

2024-09-26 18:17:39 发布

您现在位置:Python中文网/ 问答频道 /正文

如果有最大文件大小np.fromfile文件()? 我试图读取一个48GB的文件,其中大约有2.1e9条记录(每个记录有5个值)。在

当我把计数限制在8e7时,它就起作用了:

fromfile(filename, dtp, int(8e7))
Out[69]: 
array([(1, 244025.0, 1.1666666269302368, 360.1666564941406, 50.0),
       (2, 244025.0, 1.1666666269302368, 360.5, 50.0),
       (3, 244025.0, 1.1666666269302368, 360.8333435058594, 50.0), ...,
       (255138, 244131.0, 1128.9346923828125, 461.38494873046875, 49.5),
       (255139, 244131.0, 1143.77783203125, 473.2532958984375, 49.5),
       (255140, 244131.0, 1150.4803466796875, 464.6799011230469, 49.5)], 
      dtype=[('ntrac', '<i4'), ('ints', '<f8'), ('x', '<f4'), ('y', '<f4'), ('z', '<f4')]) 

但当计数设置为9e7时,所有值都被读取为零:

^{pr2}$

Tags: 文件np记录filenameoutarrayint计数
2条回答

可能是Mac OSX的fread()例程中的一个bug。fwrite()例程也有类似的错误:https://github.com/numpy/numpy/issues/574

你可以通过编写一个简单的C测试程序(比如附在票证上的那个),然后向苹果抱怨。。。在

解决方法是将文件分成足够小的块来读取。在

编辑:阅读错误报告太快-fwrite()错误并不完全相似,但我认为不能排除操作系统错误。。。在

看起来它确实是macosx的一个bug

在numpy中看到以下错误:https://github.com/numpy/numpy/issues/2806

我在我的分支机构中有一个建议的修复程序,可以帮助某人验证它,请参见: https://github.com/sauliusl/numpy/tree/bug_large_save

相关问题 更多 >

    热门问题