💡 ETL 파이프라인으로 S3에 적재된
gzip
으로 압축된 로그파일을 다시 다운로드하고 압축해제하는 과정에서 찾은 방법입니다.
import os
import gzip
import shutill
from pathlib import Path
BASE_PATH = PATH(os.getcwd()).resolve() # 현재 작업디렉토리 반환 -> 절대경로로 변환
logfile_path = BASE_PATH/'your_logfile_path'
compressfile_path = BASE_PATH/'your_compressed_file_path'
# json 로그파일을 -> gzip 으로 압축 .gz 파일로 변환해서 저장
with open(logfile_path,'rb') as f_in:
with gzip.open(compressfile_path,'wb') as f_out:
f_out.writelines(f_in)
# .gz 파일을 다시 압축해제 ->
with gzip.open(f'{file_name}', 'rb') as f_in:
with open('django_log.json', 'wb') as f_out:
shutil.copyfileobj(f_in, f_out)