Python zip 관련 모듈
- zipfile
- pyminizip (사용)
zipfile
단점
zipfile 모듈에는 하나의 단점이 있는데, Password 설정을 못한다 🤣
사용
from zipfile import ZipFile, ZIP_DEFLATED
def compress():
with ZipFile('compress_your_file.zip', 'w', allowZip64=True) as zipper:
for (path, dir, files) in os.walk('compress_your_path'):
for file in files:
# write
zipper.write(os.path.join(path, file), compress_type=ZIP_DEFLATED)
zipper.close()
return
Pyminizip
설치
pip install pyminizip
단점
- Documentation이 빈약함
- 모듈 설치 필요
사용
import pyminizip
def compress():
compress_list = []
path_list = []
for (path, dir, files) in os.walk('your_path'):
for file in files:
path_list.append(path)
target = os.path.join(path, file)
compress_list.append(target)
# write
pyminizip.compress_multiple(
compress_list, # 파일 리스트
path_list, # 파일 prefix (= 경로) 주의사항. 파일 리스트와 길이가 같아야함!
'compress_your_file.zip', # 압축 파일 명
'your_password', # 패스워드
5, # 압축률 / type:int / ( 1 ~ 9 ) / 1: 빠름 9: 압축률 높음
progress # 압축할 때 호출될 함수. 파라미터는 1개 (count: 몇 번째인지)
)
return
def progress(count):
print(count)
반응형