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

Python uuencode 모듈로 파일 인코딩 및 디코딩하기

파일 전송 과정에서는 암호화, 압축, 혹은 서로 다른 운영체제나 파일 리더 프로그램에서 처리해야 하는 등 다양한 이유로 파일을 인코딩하고 디코딩해야 하는 경우가 자주 발생합니다. Python의 uu 모듈은 이러한 작업을 손쉽게 처리할 수 있도록 인코딩과 디코딩 기능을 모두 제공합니다.

파일 인코딩하기

이번 예제에서는 아래 이미지를 인코딩한 뒤, 다시 디코딩하여 원본 이미지를 복원하는 과정을 살펴보겠습니다.

Python uuencode 모듈로 파일 인코딩 및 디코딩하기

아래 프로그램에서는 encode 함수를 사용하여 지정한 이미지 파일을 인코딩하고, 인코딩이 완료된 파일의 내용을 직접 읽어 확인합니다.

예제 코드

import uu

infile = "E:\tp_logo.JPG"

uu.encode(infile, 'encoded_logo.JPG')
f = open("E:\TP\encoded_logo.JPG",'r')
print(f.read())

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

실행 결과

begin 666 tp_logo.JPG
M_]C_X 02D9)1@ ! 0$ D "0 #_X1"*17AI9@ 34T *@   @ ! $[ (
M ( (2H=I 0   ! (4IR= $   0 0<NH< < @,   /@
M <Z@   @                                  
M …………………………….

인코딩된 파일은 begin 헤더로 시작하며, 원본 바이너리 데이터가 ASCII 텍스트 형태로 변환되어 저장된 것을 확인할 수 있습니다.

파일 디코딩하기

이어서 모듈의 decode 함수를 사용하여 인코딩된 파일을 다시 원본 이미지인 decoded_logo.JPG로 복원합니다. 아래 결과 이미지에서 확인할 수 있듯이, 디코딩된 이미지는 원본 이미지와 완전히 동일합니다.

예제 코드

import uu
uu.decode('encoded_logo.JPG','decoded_logo.JPG')

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

실행 결과

Python uuencode 모듈로 파일 인코딩 및 디코딩하기

참고 사항

uu 모듈은 유닉스 계열 시스템에서 널리 쓰이던 uuencode/uudecode 유틸리티와 호환되는 형식을 다룹니다. 다만 최신 버전의 Python(3.11부터)에서는 해당 모듈이 더 이상 권장되지 않으므로(deprecated), 새로운 프로젝트에서는 base64 모듈과 같은 대안을 사용하는 것이 좋습니다.