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

Python binhex 모듈로 binhex4 파일 인코딩·디코딩하기

Python binhex 모듈이란?

파이썬의 binhex 모듈은 파일을 binhex4 형식으로 인코딩하고 디코딩하는 기능을 제공합니다. binhex4는 매킨토시(Macintosh) 파일을 ASCII 텍스트 형태로 표현하기 위해 사용되던 포맷으로, 바이너리 데이터를 텍스트 환경에서도 안전하게 주고받을 수 있도록 만들어졌습니다. 단, 이 모듈은 데이터 포크(data fork)만 처리하며 리소스 포크(resource fork)는 지원하지 않습니다.


binhex 모듈의 주요 함수

binhex 모듈은 다음 두 가지 함수를 제공합니다.

1. binhex.binhex(input, output)

input이라는 이름의 바이너리 파일을 binhex 형식의 output 파일로 변환(인코딩)합니다. output 매개변수에는 파일 이름 문자열 또는 write()close() 메서드를 지원하는 파일류 객체(file-like object)를 사용할 수 있습니다.

2. binhex.hexbin(input, output)

binhex 형식의 input 파일을 디코딩합니다. input은 파일 이름 또는 read()close() 메서드를 지원하는 파일류 객체일 수 있습니다. 결과 파일은 output에 지정한 이름으로 저장되며, 이 인자가 None이면 binhex 파일 내부에 기록된 출력 파일 이름을 대신 사용합니다.


사용 예제

① 바이너리 파일을 binhex4로 인코딩

import binhex

infile = "file.txt"
binhex.binhex(infile, 'test.hqx')

위 코드를 실행하면 다음과 같은 binhex4 형식의 ASCII 텍스트가 생성됩니다.

(This file must be converted with BinHex 4.0)

:#'CTE'8ZG(Kd!&4&@&3rN!3!N!8G!*!%Ql&6D@e`E'8JDA-JBQ9dG'9b)(4SB@i
JBfpYF'aPH-bk!!!:

② binhex4 파일을 다시 일반 파일로 디코딩

인코딩된 .hqx 파일을 원래의 바이너리 형식으로 되돌리려면 hexbin() 함수를 사용합니다.

import binhex

infile = "test.hqx"
binhex.hexbin(infile, 'test.txt')

참고: 모듈 지원 중단(Deprecated)

binhex 모듈은 파이썬 3.9부터 공식적으로 지원 중단(deprecated) 상태가 되었으며, 파이썬 3.13에서는 표준 라이브러리에서 완전히 제거되었습니다. 따라서 최신 프로젝트에서는 binhex 대신 base64 모듈처럼 널리 쓰이는 인코딩 방식을 사용하는 것이 좋습니다. 레거시 Macintosh 파일을 다루어야 하는 경우에만 이 모듈을 참고하세요.