Python - zipfile 모듈로 압축 파일 다루기 (+리눅스 명령어)

반응형

zipfile 모듈이란?

  • zip 파일 형식은 흔히 쓰이는 압축 표준
  • 이 모듈은 zip 파일을 만들고 읽기, 쓰기, 추가, 나열하는 도구를 제공
  • 최대 4Gb까지의 압축 파일을 처리

파이썬

압축 풀기

  • zipfile.ZipFile('경로/파일이름') : 해당 파일을 읽어옴, 디폴트 값이 'r' (읽기 모드)
  • ZipFile.extractall('경로') : 해당 경로에 압축 해제
  • ZipFile.close() : 할당된 시스템 자원 반환
# zip_folder 폴더에 test.zip 압축 해제
zip_ref = zipfile.ZipFile('test.zip')
zip_ref.extractall('/zip_folder')
zip_ref.close()

# 같은 의미
# zipfile.ZipFile('test.zip').extractall('/zip_folder')

압축하기

  • zipfile.ZipFile('경로/파일이름', 'w') : 쓰기 모드, 해당 경로와 파일이름으로 압축 파일 생성
  • ZipFile.write('파일이름') : 파일 읽기
  • ZipFile.close() : 할당된 시스템 자원 반환
my_zip = zipfile.ZipFile('test.zip', 'w')
my_zip.write('test.txt')
my_zip.close()

여러개의 파일 압축하기

  • 변수 = [파일1, 파일2, 파일3...] : 파일들 리스트화하여 변수 저장
  • with문과 for문을 이용하여 파일을 읽고 압축
file_list = ['test.txt', 'test2.txt', 'test3.txt']
with zipfile.ZipFile('test.zip', 'w') as my_zip :
	for i in file_list :
    	my_zip.write(i)
    my_zip.close()

리눅스 명령어로 압축/해제하기

  • 압축
    • file1, file2를 my_zip 이름으로 압축
!zip my_zip.zip file1, file2

 

  • 압축 해제
    • 'my_zip' 이름의 압축 파일을 압축 해제
!unzip my_zip.zip
반응형