문자열(str) 처리 및 인코딩/디코딩 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- Python 개발자, 문자열 처리 및 인코딩/디코딩 작업에 관심 있는 사람들
- 중급 이상의 Python 지식을 가진 개발자에게 유용
핵심 요약
str()
함수는 객체, 바이트 객체, 인코딩 방식, 오류 처리 방법을 매개변수로 받아 문자열을 생성- 인코딩 옵션:
utf-8
,utf-16
,ascii
등 표준 인코딩 사용 가능 - 오류 처리 방법:
'strict'
,'ignore'
,'replace'
,'xmlcharrefreplace'
,'backslashreplace'
등 다양한 핸들러 제공
섹션별 세부 요약
1. `str()` 함수의 매개변수 설명
object
매개변수:
- 기본값은 빈 문자열 ''
또는 바이트 객체 b''
- encoding
및 errors
가 설정된 경우, 바이트 객체를 디코딩
encoding
매개변수:
- 'utf-8'
, 'utf-16'
, 'ascii'
등 다양한 인코딩 방식 지원
- 표준 인코딩 목록 참조 가능
errors
매개변수:
- 디코딩 오류 처리 방식을 제어 (예: 'strict'
, 'ignore'
, 'replace'
등)
2. 인코딩 오류 처리 방법
'strict'
: 디코딩 불가능한 문자가 있을 경우UnicodeError
발생'ignore'
: 디코딩 불가능한 문자를 무시'replace'
: 디코딩 불가능한 문자를�
로 대체'xmlcharrefreplace'
: XML 형식의 문자 참조로 대체 (예:ё
)'backslashreplace'
: Unicode escape 시퀀스로 대체 (예:\u0451
)
3. `str()` 함수의 다양한 객체 변환 예시
- 자료형 변환 예시:
- str(12)
→ "12"
(정수)
- str([1, 2, 3])
→ "[1, 2, 3]"
(리스트)
- str({'name': 'John'})
→ "{name: John}"
(딕셔너리)
- str(iter([1, 2, 3]))
→
(이터레이터)
4. 사용자 정의 오류 처리 핸들러
codecs.register_error()
를 사용하여 커스텀 오류 처리 방식 정의 가능
결론
- 인코딩/디코딩 작업 시
encoding
과errors
매개변수를 적절히 설정하여 예외 처리 가능 str()
함수는 다양한 자료형을 문자열로 변환할 수 있어 데이터 처리 시 유용- 예시:
str(b'Hello', encoding='utf-8', errors='ignore')
→"Hello"
(바이트 객체 디코딩)