[python] gzip으로 압축, 해제하기

ggydo59·2023년 3월 23일
0

💡 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)
  • 생성된 파일들..
  • 압축해제된 모습
  • 저런형태인 이유는 해싱과 암호화를 거쳐서 저런형태가 나온 것 입니다. 더 궁금하다면 여기
  • 참고로 w, r, b 는 write, read, binary의 뜻입니다.
    즉 풀어말하면 바이너리 파일로 읽기, 바이너리 파일로 쓰기를 의미합니다.
  • 전체코드

참고

profile
데이터엔지니어입니다.

0개의 댓글