Python은 C/C++ 및 Python 데이터 형식을 변환하기 위해 파일의 바이너리 데이터를 읽고 쓰려면 struct 모듈을 사용해야 합니다.
구조체 모듈에서 가장 일반적으로 사용되는 함수는 pack과 unpack입니다. fmt,v1,v2… )
pack_into(fmt,buffer,offset,v1, v2… ) | None | |
---|---|---|
unpack(fmt,v1,v2……) | tuple | 지정된 형식(fmt)에 따라 바이트 스트림을 구문 분석하고 구문 분석 결과를 반환 |
pack_from(fmt, buffer ,offset) | tuple | 주어진 형식(fmt)에 따라 오프셋으로 시작하는 버퍼를 구문 분석하고 구문 분석 결과를 반환합니다. |
calcsize(fmt) | fmt의 크기 | 주어진 형식(fmt)이 몇 바이트를 차지하는지 계산합니다. 메모리 정렬에 주의하세요 |
3. 구조체 모듈의 fmt 데이터 형식은 C/C++ 및 Python | ||
C Type | Python type | Standard의 유형에 해당합니다. 크기 |
integer | 1 | B | |
---|---|---|---|
1 | ? |
_Bool |
|
1 | h | short | |
2 | H | unsigned short | |
2 | i | int | |
4 | I | unsigned int | |
4 | l | long | |
4 | L | unsigned long | |
4 | ㅋ | 롱롱 | |
Q | ed long long | integer | |
f | float | float | |
d | double | float | |
s | 문자[] | 문자열 | |
p | char[ ] | string | |
P | void * | ||
4. 예 | |||
5. Python 문자열 앞에 u, r, b, f를 추가하는 의미 | 다음 문자열은 유니코드 형식으로 인코딩되며 일반적으로 소스 코드 저장 형식 문제를 방지하기 위해 중국어 문자열 앞에 사용되어 다시 사용할 때 문자가 깨집니다. | 5.2. 백슬래시 전송 메커니즘을 제거하려면 문자열 앞에 r | 을 추가하세요. (특수 문자: 백슬래시와 해당 문자는 해당 특수 의미를 나타냅니다. 예를 들어 가장 일반적인 "n"은 줄 바꿈을 의미하고 "t"는 탭을 의미합니다.) str= r'hello\n\t\n' | 5.3 문자열 앞에 b를 추가합니다
bytes = b'hello' | Python3에서 바이트와 str 사이의 상호 변환 방법은 str.encode(‘utf-8') bytes.decode(‘utf-8') | 5.4입니다. 문자열 앞에 f를 추가합니다f로 시작한다는 것은 문자열에서 중괄호 안의 Python 표현식이 지원된다는 의미이며, 문자열 연결 | name = 'Lily' print(f'My name is {name}.') |
위 내용은 Python을 사용하여 바이너리 파일을 읽고 쓰는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!