이 글은 Python 구조체를 사용하여 바이너리를 처리하는 예제에 대한 자세한 설명을 주로 소개합니다. 필요한 친구들은 이 글을 통해 모두가 이 부분을 숙지할 수 있기를 바랍니다.
자세한 설명 바이너리를 처리하기 위해 구조체를 사용하는 Python의 예
Yes 파일에 액세스하거나 소켓 작업을 수행할 때와 같이 바이너리 데이터를 처리하기 위해 Python을 사용해야 하는 경우 Python의 구조체 모듈을 사용하여 완료할 수 있습니다.
struct 모듈 가장 중요한 세 가지 함수는 pack(), unpack(), calcsize()
pack(fmt, v1, v2, ...)입니다. 데이터를 주어진 형식(fmt)에 따라 문자열로 변환합니다. (실제로는 C 구조와 유사한 바이트 스트림입니다.)
unpack(fmt, string) 주어진 형식(fmt)에 따라 바이트 스트림 문자열을 구문 분석하고 반환합니다. 구문 분석된 튜플
calcsize(fmt ) 구조체에서 지원되는 메모리 바이트 수를 계산합니다. 다음과 같습니다:
x
1 | c | char | |
---|---|---|---|
b | 서명된 문자 | integer | |
B | 부호 없는 문자 | 정수 | |
? | _Bool | bool | |
h | short | int eger | |
H | unsigned short | 정수 | |
i | int | integer | |
I | unsigned int | integer 또는 long | |
l | long | integer | |
H 에드 롱 롱 | long | 8 | |
f | float | float | 4 |
d | double | float | 8 |
s | char[] | string | 1 |
p | char[] | string | 1 |
P | void * | long | |
참고 1.q 및 Q는 컴퓨터가 64비트 작업을 지원할 때만 유용합니다 | 참고 2. 이전에 각 형식을 사용할 수 있습니다. 숫자를 나타내는 숫자가 있습니다참고 3. s 형식은 특정 길이의 문자열을 나타내고, 4s는 길이 4의 문자열을 나타내지만 p는 파스칼 문자열을 나타냅니다. | 참고 4.P 포인터의 길이를 변환하는 데 사용됩니다. 이는 기계어 길이와 관련이 있습니다참고 5. 마지막 것은 포인터 유형을 나타내는 데 사용할 수 있으며, 4바이트를 차지합니다. | |
문자 | 바이트 순서 | ||
@ | native | ||
= | 네이티브 |
standard 원래 바이트 수에 따라 |
원래 바이트에 따른
& gt
standard;
Network (= Big-Endian) | 표준 원래 바이트 수 기준 | |
---|---|---|
위 내용은 바이너리 데이터를 처리하기 위해 구조체를 사용하는 Python의 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!