바이너리 데이터 서비스

바이너리 데이터 서비스 (Binary Data Services)

이 장에서 설명하는 모듈들은 바이너리 데이터를 조작하기 위한 기본 서비스 연산을 제공해요.

바이너리 데이터는 그대로는 사람이 읽기 어렵고, 파일이나 네트워크에서 다룰 때 특히 중요한데, 이 장의 모듈들이 그런 처리를 도와줘요.

파일 형식이나 네트워크 프로토콜과 관련된 다른 바이너리 데이터 연산은 관련 섹션에서 설명해요.

텍스트 처리 서비스(Text Processing Services) 아래에 설명된 일부 라이브러리는 ASCII 호환 바이너리 형식(예: re)이나 모든 바이너리 데이터(예: difflib)와도 함께 동작해요.

또 파이썬의 내장 바이너리 데이터 타입(bytes, bytearray, memoryview)에 대한 문서는 "Binary Sequence Types"를 보세요.

이 장은 파이썬 표준 라이브러리에서 바이너리 데이터 처리 관련 모듈을 모아 둔 목차 페이지예요.

출처: Python documentation

본문

struct — bytes를 패킹된 바이너리 데이터로 해석

struct 모듈은 파이썬 값들을 형식 문자열에 따라 바이너리 구조로 패킹(pack) 하거나, 그 바이너리를 다시 파이썬 값으로 언패킹(unpack) 해요.

함수와 예외, 형식 문자열, 바이트 순서·크기·정렬(alignment), 형식 문자, 예제, 응용(네이티브 형식/표준 형식), 클래스(Struct)를 다뤄요.

C 구조체와 통신하거나 바이너리 파일을 파싱할 때 핵심적이에요.

codecs — 코덱 레지스트리와 기본 클래스

codecs 모듈은 텍스트와 바이트 사이의 인코딩/디코딩을 담당하는 코덱의 레지스트리와 기본 클래스를 제공해요.

코덱 기본 클래스, 오류 핸들러, 무상태 인코딩/디코딩, 증분 인코딩/디코딩(IncrementalEncoder/IncrementalDecoder 객체)을 다뤄요.

스트림 인코딩/디코딩(StreamWriter/StreamReader/StreamReaderWriter/StreamRecoder 객체), 인코딩과 유니코드, 표준 인코딩, 파이썬 특정 인코딩, 텍스트 인코딩, 바이너리 변환, 독립 코덱 함수, 텍스트 변환을 다뤄요.

encodings — 인코딩 패키지

encodings 패키지는 다양한 문자 인코딩 구현을 담아요.

encodings.idna(국제화 도메인 이름, IDNA), encodings.mbcs(Windows ANSI 코드 페이지), encodings.utf_8_sig(BOM 서명이 있는 UTF-8 코덱) 같은 특수 목적 인코딩을 포함해요.

바이너리 데이터를 다룰 때는 텍스트 인코딩과 바이너리 구조 해석을 함께 고려해야 하므로, structcodecs, encodings가 서로 보완적으로 쓰여요.

더 알아보기 (Learn more)