我有一個很大的二進制文件,我想在數組中讀取。 二進制文件的格式是:讀取二進制文件時提高速度
- 在我沒有使用的每行的開始和結尾處都有一個4字節的額外數據;
- 之間我有8個字節值
我做這樣的:
# nlines - number of row in the binary file
# ncols - number of values to read from a row
fidbin=open('toto.mda' ,'rb'); #open this file
temp = fidbin.read(4) #skip the first 4 bytes
nvalues = nlines * ncols # Total number of values
array=np.zeros(nvalues,dtype=np.float)
#read ncols values per line and skip the useless data at the end
for c in range(int(nlines)): #read the nlines of the *.mda file
matrix = np.fromfile(fidbin, np.float64,count=int(ncols)) #read all the values from one row
Indice_start = c*ncols
array[Indice_start:Indice_start+ncols]=matrix
fidbin.seek(fidbin.tell() + 8) #fid.tell() the actual read position + skip bytes (4 at the end of the line + 4 at the beginning of the second line)
fidbin.close()
它運作良好,但問題是,對於大型的二進制文件很慢。 有沒有辦法提高二進制文件的閱讀速度?
您使用的是什麼Python版本? – niemmi