Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 문자열을 파일 객체처럼 다루는 방법 – StringIO 완벽 가이드

파이썬으로 개발하다 보면 문자열의 내용을 마치 실제 파일처럼 취급해야 하는 경우가 종종 있습니다. 예를 들어 파일 객체를 인자로 받는 함수에 문자열 데이터를 전달하거나, 파일 입출력 로직을 테스트할 때가 대표적입니다. 이럴 때 StringIO 모듈을 사용하면 문자열을 파일과 동일한 덕 타입(duck type)을 가진 객체로 손쉽게 변환할 수 있습니다.

StringIO 기본 사용법

사용 방법은 매우 간단합니다. 원하는 문자열을 StringIO 생성자에 전달하기만 하면, 해당 문자열을 일반 파일 객체처럼 읽고 쓸 수 있습니다.

>>> from cStringIO import StringIO
>>> f = StringIO('Hello world')
>>> f.read()
'Hello world'

Python 3에서의 사용 방법

Python 3부터는 cStringIO 모듈이 제거되었으므로, 표준 라이브러리인 io 모듈의 StringIO 클래스를 사용해야 합니다. 문법은 거의 동일하며 다음과 같이 작성합니다.

>>> import io
>>> f = io.StringIO('Hello world')
>>> f.read()
'Hello world'

활용 팁과 주의사항

StringIO로 생성한 객체는 read(), write(), seek(), getvalue() 등 일반 파일 객체가 지원하는 대부분의 메서드를 그대로 사용할 수 있어, 단위 테스트나 임시 버퍼 처리에 특히 유용합니다.

다만 한 가지 주의할 점이 있습니다. StringIO는 일반 ASCII로 인코딩할 수 없는 유니코드 문자열은 처리하지 못합니다. 한글이나 이모지 같은 비 ASCII 문자를 다룰 때는 인코딩 방식을 미리 확인하고 사용하는 것이 안전합니다.