• zip 파일 압축

- ZipFile 객체를 만들때 'w' 옵션을 부여: zipfile.ZipFile('new.zip', 'w')
- 'w' 모드는 파일이 새로 만들어지며, 기존 파일이 있으면 내용이 모두 지워진다.
- 'a' 모드는 컨텐츠를 추가할때 사용

import zipfile

newzip = zipfile.ZipFile('new.zip', 'w')
newzip.write('test.txt', compress_type=zipfile.ZIP_DEFLATED)
newzip.write('helloworld.py', compress_type=zipfile.ZIP_DEFLATED)
newzip.close()

 

  • zip 파일에 파일 추가
import zipfile

newzip = zipfile.ZipFile('new.zip', 'a')  # a : 추가
newzip.write('temp.py', compress_type=zipfile.ZIP_DEFLATED)
newzip.close()

기존 new.zip 파일에 temp.py 파일을 압축하여 추가 하였다.

 

  • zip 파일 압축 풀기

- extractall() : 현재 디렉토리에 파일과 디렉토리 압축해제
- extract(file_name) : 해당 파일만 압축해제

import os
import zipfile

os.mkdir('C:\\dev\\new') # new 폴더 생성
print(os.getcwd())
os.chdir('C:\\dev\\new') # 경로 이동 
myzip = zipfile.ZipFile('C:\\dev\\new.zip')
myzip.extractall()
myzip.close()

c:/dev/new 폴더 생성 후 이 폴더 안에 c:/dev/new.zip 압축을 푼다.

참고로 'C:\\dev\\new' 대신에 'C:/dev/new' 를 쓸 수 있다.

 

  • zip 파일 읽기
import zipfile, os

os.chdir('C:\\dev')     # 폴더 변경
myzip = zipfile.ZipFile('new.zip')
print(type(myzip))
print(myzip.namelist())     # 압축된 파일명 리스트  
myinfo = myzip.getinfo('helloworld.py')  # 압축된 helloworld.py에 대한 정보
print(type(myinfo))
print(myinfo.file_size)
print(myinfo.compress_size)
myzip.close()

 

'Python' 카테고리의 다른 글

Python logging 로그  (0) 2022.01.23
Python 예외 처리  (0) 2022.01.23
Python 파일, 디렉터리  (0) 2022.01.23
Python 정규식  (0) 2022.01.15
Python list, tuple, dictionary, 리스트, 튜플, 딕셔너리  (0) 2022.01.15

+ Recent posts