怎么读取二进制文件?

我有一个数据集,二进制形式的,每个数的格式是 uint32,请问怎么读取呢?

python 代码这样写,怎样换成 julia 的呢?

fr = open(filename,"r")
data = np.fromfile(fr, dtype=np.uint32)
data = data.reshape(-1, 7)
fr.close()

根据具体数据集的格式来决定, JuliaIO 下面有很多支持,比如说 HDF5.jl, MAT.jl

就是简单的二进制文件,数据一个一个排列,不是特定的格式。

@johnnychen94

using Mmap
dataFilesize = filesize(filename)
dataRowsize = Int64(dataFilesize / sizeof(UInt32) / 7 )
data=Mmap.mmap(open(filename), Matrix{UInt32}, (dataRowsize, 7))

最直接的二进制读取就是 read (考虑到性能可能还需要使用 IOBuffer)

data = read(filename)
open(filename) do io
    data = read(io, nb=1024*512) # 512Kb per read
    ... # process
end

@xgdgsc @johnnychen94 感谢,成功读取出来了。