웹사이트 검색

Python 구조체 팩, 압축 풀기


Python 구조체 Python 문자열.

파이썬 구조체

  • Python 구조체 모듈은 파일, 데이터베이스 또는 네트워크 연결 등에 저장된 바이너리 데이터를 처리하는 데 사용할 수 있습니다.
  • 포맷 문자열을 C 구조체의 레이아웃과 Python 값으로/에서 의도된 변환에 대한 간결한 설명으로 사용합니다.

파이썬 구조체 함수

구조체 모듈에는 pack(), unpack(), calcsize(), pack_into() 의 다섯 가지 중요한 함수가 있습니다. 및 unpack_from(). 이 모든 함수에서 바이너리로 변환할 데이터의 형식을 제공해야 합니다. 인기 있는 형식 문자 중 일부는 다음과 같습니다.

?: boolean
h: short
l: long
i: int
f: float
q: long long int

여기에서 형식 문자의 전체 목록을 얻을 수 있습니다. 구조체 모듈 함수를 하나씩 살펴보겠습니다.

파이썬 구조체.팩()

이 함수는 값 목록을 지정된 유형의 문자열 표현으로 압축합니다. 인수는 형식에 필요한 값과 정확히 일치해야 합니다. struct pack() 예제를 빠르게 살펴보겠습니다.

import struct

var = struct.pack('hhl', 5, 10, 15)
print(var)
 
var = struct.pack('iii', 10, 20, 30)
print(var)

파이썬 struct.unpack()

이 함수는 압축된 값을 지정된 형식으로 원래 표현으로 압축을 풉니다. 이 함수는 요소가 하나만 있더라도 항상 튜플을 반환합니다. struct unpack() 함수 예제를 빠르게 살펴보겠습니다.

import struct
var = struct.pack('hhl', 5, 10, 15)
print(var)
print(struct.unpack('hhl', var))

파이썬 구조체 calcsize()

이 함수는 주어진 형식으로 구조체의 문자열 표현 크기를 계산하고 반환합니다. 크기는 바이트 단위로 계산됩니다. 예제 코드 스니펫을 빠르게 살펴보겠습니다.

import struct
 
var = struct.pack('hhl', 5, 10, 15)
print(var)
print("Size of String representation is {}.".format(struct.calcsize('hhl')))

파이썬 구조체 pack_into(), unpack_from()

이러한 함수를 사용하면 값을 문자열 버퍼에 압축하고 문자열 버퍼에서 압축을 풀 수 있습니다. 이러한 기능은 버전 2.5에서 도입되었습니다.

import struct
# ctypes is imported to create a string buffer
import ctypes

# As shown in previous example
size = struct.calcsize('hhl')
print(size)

# Buffer 'buff' is created from ctypes
buff = ctypes.create_string_buffer(siz)

# struct.pack_into() packs data into buff and it doesn't return any value
# struct.unpack_from() unpacks data from buff, returns a tuple of values
print(struct.pack_into('hhl', buff, 0, 5, 10, 15))
print(struct.unpack_from('hhl', buff, 0))