Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 核心外自定义二进制文件处理_Python_Python 3.x_Io_Binaryfiles_Binary Data - Fatal编程技术网

Python 核心外自定义二进制文件处理

Python 核心外自定义二进制文件处理,python,python-3.x,io,binaryfiles,binary-data,Python,Python 3.x,Io,Binaryfiles,Binary Data,目前的问题是一批大型(500GB-1TB)二进制文件,表示连续的时间序列数据,每个文件都有页眉和页脚。我见过很多解决方案,比如Dask,或者Python核心mmap,或者NumPymemmap,等等,但是它们似乎都没有处理页脚包含问题。至少我没有注意到,可能有一些琐碎的东西,比如“文件大小掩码”,允许我“重影”每个文件的最后N字节 我在文件交互方面的限制仅限于只读访问,我在本地都有这些限制 我现在写的是一个io.open(filename,'rb',buffering=0),它迭代文件列表,每次

目前的问题是一批大型(500GB-1TB)二进制文件,表示连续的时间序列数据,每个文件都有页眉和页脚。我见过很多解决方案,比如
Dask
,或者Python核心
mmap
,或者NumPy
memmap
,等等,但是它们似乎都没有处理页脚包含问题。至少我没有注意到,可能有一些琐碎的东西,比如“文件大小掩码”,允许我“重影”每个文件的最后
N
字节

我在文件交互方面的限制仅限于
只读
访问,我在本地都有这些限制

我现在写的是一个
io.open(filename,'rb',buffering=0)
,它迭代文件列表,每次读取后手动移动指针,并跟踪指针相对于文件的位置。当它到达下一次读取将进入页脚的点时,例如进入下一个文件,有一个非常难看的位将块分成两个更小的、通常不对称的块,第一个块被读取,然后发生文件切换,然后读取下一个块


我觉得我正在用它来改造自行车,我非常感谢任何头脑风暴级别的建议。一旦我知道了我应该走的方向,我会很乐意自己设计技术细节。

你考虑过使用吗?e、 将二进制数据(在一次顺序读取过程中)转换为精心设计的SQLite数据库。。。或者在原始二进制文件中构建一个包含偏移量的SQLite数据库。不是真的,不是。我主要关心的是改进读取过程本身,因为我可以直接、算法地生成偏移量列表——我现在已经这样做了。我目前的解决方案是可行的,与一般解决方案相比,amd可能表现不佳,而不是最先进的解决方案。原始数据本身只需要直到第一次计算通过,其结果减少了选择大小的数量级。您考虑使用吗?e、 将二进制数据(在一次顺序读取过程中)转换为精心设计的SQLite数据库。。。或者在原始二进制文件中构建一个包含偏移量的SQLite数据库。不是真的,不是。我主要关心的是改进读取过程本身,因为我可以直接、算法地生成偏移量列表——我现在已经这样做了。我目前的解决方案是可行的,与一般解决方案相比,amd可能表现不佳,而不是最先进的解决方案。原始数据本身只需要在第一次计算通过之前使用,计算结果会将选择大小减少几个数量级。