[파이썬] 파일 읽기와 쓰기의 텍스트 모드와 이진 모드

파이썬은 파일 입출력을 위해 텍스트 모드와 이진 모드 두 가지 방식을 지원합니다. 각각의 모드는 파일을 다루는 목적에 따라 사용됩니다. 이번 글에서는 이 두 가지 모드에 대해 자세히 알아보고, 각각의 특징과 사용 방법을 살펴보겠습니다.

텍스트 모드 (Text Mode)

텍스트 모드는 텍스트 파일을 다루는데 사용됩니다. 텍스트 파일은 인간이 읽고 이해할 수 있는 문자열들로 이루어진 파일입니다. 이러한 파일들은 주로 텍스트 편집기나 워드프로세서로 생성되며, 읽기와 쓰기 모두에 적합합니다.

파이썬에서 파일을 텍스트 모드로 열려면 open() 함수를 사용하고, r (read), w (write), a (append) 등의 모드를 지정해야 합니다. 다음은 텍스트 파일을 읽고 쓰는 예제 코드입니다.

# 파일 읽기
with open('file.txt', 'r') as file:
    content = file.read()
    print(content)

# 파일 쓰기
with open('new_file.txt', 'w') as file:
    file.write('Hello, World!')

위의 예제에서 open() 함수를 통해 파일을 연 후, read() 메서드를 사용하여 파일 내용을 읽고 write() 메서드를 사용하여 파일에 내용을 쓸 수 있습니다. 또한, with 문을 사용하여 파일을 열고 닫는 작업을 자동으로 처리할 수 있습니다.

이진 모드 (Binary Mode)

이진 모드는 텍스트가 아닌 이진 데이터를 다루는데 사용됩니다. 이러한 데이터는 주로 이미지, 오디오, 비디오 등의 파일 형태로 존재하며, 텍스트 파일과 달리 문자열이 아닌 바이트(byte) 형태로 구성되어 있습니다.

파이썬에서 파일을 이진 모드로 열려면 open() 함수에 b (binary) 모드를 지정해야 합니다. 다음은 이진 파일을 읽고 쓰는 예제 코드입니다.

# 파일 읽기
with open('image.jpg', 'rb') as file:
    content = file.read()
    print(len(content))

# 파일 쓰기
with open('new_image.jpg', 'wb') as file:
    file.write(content)

위의 예제에서 open() 함수에 rbwb 모드를 사용하여 이진 파일을 읽거나 쓸 수 있습니다. 파일을 읽을 때 read() 메서드를 사용하여 바이트 형태로 읽고, 파일에 쓸 때는 write() 메서드를 사용하여 바이트 형태로 쓸 수 있습니다.

마치며

파이썬에서 파일 입출력을 다룰 때는 텍스트 모드와 이진 모드를 올바르게 선택하여 사용해야 합니다. 텍스트 모드는 문자열을 다루는 텍스트 파일에 적합하며, 이진 모드는 이진 데이터를 다루는 파일에 적합합니다. 파일을 다룰 때 모드를 따르고, with문으로 자동으로 파일을 닫아줌으로써 코드를 간결하고 안전하게 작성할 수 있습니다.