본문 바로가기
파이썬

파이썬 Reading a binary .dat file as an array

by º기록 2021. 2. 11.
반응형

여러 번 반복되는 코드가 있습니다. 각 반복에서 코드는 numpy 기반 배열을 생성합니다. 기존 바이너리 .dat 파일에 numpy 기반 배열을 추가합니다. 다음 코드를 사용하여 데이터를 생성합니다.

WholeData = numpy.concatenate((Location,Data),axis=0)  
# Location & Data are two numpy arrays
DataBinary = open('DataBinary.dat','ab')
WholeData.tofile(DataBinary)
DataBinary.close()

전체 이진 파일을 배열로 읽으려고합니다. 다음과 같은 어려움이 있습니다.

다음 코드를 시도했습니다.

NewData = numpy.array('f')
File1 = open('DataBinary.dat','rb')
NewData.fromstring(File1.read())
File1.close()

오류 상태 :

역 추적 (가장 최근 호출 마지막) : File "", line 1, in AttributeError : 'numpy.ndarray'개체에 'fromstring'속성이 없습니다.

배열 기반 배열을 사용한 다음 파일을 배열로 읽으려고했습니다.

from array import array
File1 = open('DataBinary.dat','rb')
NewData.fromstring(File1.read())
File1.close()

그러나 NewData 는 오류가 있습니다. 즉, WholeData 와 동일하지 않습니다. 데이터를 numpy.array 로 저장하고 array.array 로 읽는 것은 좋은 옵션이 아닐 수 있습니다.

어떤 제안이라도 감사하겠습니다.

 

해결 방법

 

numpy.fromfile이 여기에서 원하는 것이라고 생각합니다.

import numpy as np
myarray = np.fromfile('BinaryData.dat', dtype=float)

또한 문서에 따르면 "정밀도 및 엔디안 정보가 손실 됨"으로 데이터를 저장하는 가장 좋은 방법은 아닙니다. 즉, dtype에 전달 된 데이터 유형이 원래 파일에 쓴 것과 호환되는지 확인해야합니다.

 

참조 페이지 https://stackoverflow.com/questions/11798800

 

 

반응형

댓글