Python 3 빈 파일 을 일정한 데이터 자릿수 형식 으로 처리 하 는 방법

2712 단어 Python3bin
대학원 단계 에 서 는 MATLAB 로 그림 을 그 려 데 이 터 를 처리 하 곤 했 지만,MATLAB 이 너무 방대 해 불편 해 python 으로 처리 하려 고 했 기 때문이다.
문제:우리 가 일반적으로 처리 하 는 가장 원시 적 인 데 이 터 는 빈 파일 입 니 다.열 면 다음 과 같이 16 진법 으로 저 장 됩 니 다.
Python3按一定数据位数格式处理bin文件
MATLAB 처리 시 앞의 10 개 수,int 32 데이터 형식 을 다음 과 같이 읽 습 니 다.위의 그림 의 빨간색 원 은 MATLAB 가 읽 은 데 이 터 를 표시 하고 앞의 10 개 데 이 터 는 메타 데 이 터 를 표시 합 니 다.
Python3按一定数据位数格式处理bin文件
MATLAB 에서 읽 은 10 개의 데이터 의 결과:
Python3按一定数据位数格式处理bin文件
한편,Python 에 서 는 지정 한 데이터 형식 자릿수 에서 bin 파일 의 데 이 터 를 읽 을 수 없 는 것 같 습 니 다.예 를 들 어 python 의 read()로 읽 으 려 고 할 때 그림 1 의 파란색 선 이 원 하 는 데 이 터 를 표시 하고 그림 에 두 개의 데 이 터 를 원 합 니 다.다음 프로그램 으로 MATLAB 가 읽 은 10 개의 데 이 터 를 읽 으 려 면 40 개가 필요 합 니 다.
Python3按一定数据位数格式处理bin文件
결 과 는 다음 과 같다.
Python3按一定数据位数格式处理bin文件
세 개의 데이터 가 대응 할 때마다 MATLAB 에서 읽 은 데이터 입 니 다.
struct 패키지 에 있 는 unpack 함수 로 문 제 를 해결 하려 면 아 쉬 울 때 python 에서 unpack 은 float 32 를 지원 하지 않 고 int 32 를 지원 하지 않 기 때문에 위 에서 python 으로 데 이 터 를 읽 을 때 32 비트 로 읽 을 수 없고 최대 8 비트 로 읽 을 수 없 기 때문에 python 은 각각 읽 을 때 파란색 코일 의 데 이 터 를 읽 습 니 다.
\#주어진 형식(fmt)에 따라 바이트 흐름 string 을 분석 하고 해 석 된 tuple 을 되 돌려 줍 니 다.
unpack(fmt, string)
string 는 다음 과 유사 합 니 다.
FORMAT
C TYPE
PYTHON TYPE
STANDARD SIZE
NOTES
x
pad byte
no value
c
char
string of length 1
1
b
signed char
integer
1
(3)
B
unsigned char
integer
1
(3)
?
_Bool
bool
1
(1)
h
short
integer
2
(3)
H
unsigned short
integer
2
(3)
i
int
integer
4
(3)
I
unsigned int
integer
4
(3)
l
long
integer
4
(3)
L
unsigned long
integer
4
(3)
q
long long
integer
8
(2), (3)
Q
unsigned long long
integer
8
(2), (3)
f
float
float
4
(4)
d
double
float
8
(4)
s
char[]
string
p
char[]
string
P
void *
integer
(5), (3)
개인 적 으로 python 쪽 은 matlab 가 좋 지 않다 고 생각 합 니 다.
따라서 python 은 MATLAB 의 fread(f,N,int 32)나 fread(f,N,real*4)와 유사 한 방식 으로 위의 그림 의 문자 흐름 을 읽 을 수 없고 해석 할 수 없습니다.
이상 의 Python 3 는 일정한 데이터 자릿수 형식 으로 bin 파일 을 처리 하 는 방법 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기