WeniVooks

검색

견고한 파이썬

바이트와 바이트배열

1. 바이트와 바이트 배열

파이썬에서 2진수 데이터를 처리할 때 주로 사용되는 데이터 유형은 바이트(bytes)와 바이트 배열(bytearray)입니다. 이 두 자료형은 바이너리 데이터를 효율적으로 다루기 위해 설계되었으며, 시퀀스 자료형의 특성을 가지고 있습니다.

1.1 바이트 (Bytes)

bytes 타입은 불변(immutable)한 바이트 시퀀스를 나타냅니다.

# 생성 example = b'hello' # 인덱싱 print(example[0]) # 출력: 104 (아스키 코드로 'h') print(example[1]) # 출력: 101 (아스키 코드로 'e') # 슬라이싱 print(example[1:4]) # 출력: b'ell' # 멤버 확인 print(b'h' in example) # 출력: True # 연결 및 반복 example2 = b' world' print(example + example2) # 출력: b'hello world' print(example2 * 2) # 출력: b' world world'

bytes 객체는 아스키 코드로만 구성된 문자열을 처리할 수 있습니다. 유니코드 문자(예: 한글)는 바이트 객체로 직접 변환할 수 없습니다.

b = b'하하'  # 에러 발생
b = b'하하'  # 에러 발생
1.2 바이트 배열 (Bytearray)

bytearray는 가변(mutable)한 바이트 시퀀스를 나타내며, bytes와 유사한 방식으로 사용됩니다.

# 생성 example = bytearray(b'hello') # 인덱싱 print(example[0]) # 출력: 104 (아스키 코드로 'h') print(example[1]) # 출력: 101 (아스키 코드로 'e') # 슬라이싱 print(example[1:4]) # 출력: bytearray(b'ell') # 멤버 확인 print(b'h' in example) # 출력: True # 연결 및 반복 example2 = bytearray(b' world') print(example + example2) # 출력: bytearray(b'hello world') print(example2 * 2) # 출력: bytearray(b' world world') # 내장 함수 print(len(example)) # 출력: 5 print(min(example)) # 출력: 101 (아스키 코드로 'e') print(max(example)) # 출력: 111 (아스키 코드로 'o') # 가변성 활용 example[0] = 74 # 'h'를 'J'로 변경 print(example) # 출력: bytearray(b'Jello')
1.3 바이트와 바이트 배열의 활용

bytesbytearray는 파일 입출력, 네트워크 통신, 바이너리 데이터 처리 등 다양한 상황에서 사용됩니다. 바이트 배열은 바이트 시퀀스의 내용을 변경할 수 있어, 동적인 바이너리 데이터 처리에 유용합니다.

{"packages":["numpy","pandas","matplotlib","lxml"]}
14.10 Random 모듈14.12 함수는 객체