티스토리 뷰
ZIP 압축
zipfile.py 기본 모듈로 제공한다.
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Lib\zipfile.py
작업폴더 : C:\Users\USER\Documents\Python
원본 파일명 : DataLog.txt
압축 파일명 : DataLog.zip
참고로, 13행에서
wzip = zipfile.ZipFile('C:\\Users\\USER\\Documents\\Python\\DataLog.zip", mode = 'w') 로 경로명을 지정하면 압축폴더 안에 전체 경로에 대한 폴더들이 만들어진다.
<pzip.py 코드>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 |
'''pzip.py
c:\Data\Data.txt 를 c:\Data\Data.zip 에 압축하기
ppzip('c:\\Data', 'Data.txt', 'Data.zip')
파일이 이미 존재하면 덮어쓰기가 되고, 9GB 파일도 압축 가능하다.(32비트 프로그램에서 확인 안됨)'''
import zipfile
import os
'''파일 단위 압축'''
def ppzip(path, sourceFile, destFile):
oldPath = os.getcwd()
os.chdir(path)
wzip = zipfile.ZipFile(destFile, mode = 'w')
wzip.write(sourceFile, '.\\', compress_type = zipfile.ZIP_DEFLATED)
wzip.close()
os.chdir(oldPath)
'''폴더단위 압축, 아직 확인 안된 코드임'''
def MultiZip():
fantasy_zip = zipfile.ZipFile('C:\\Stories\\Fantasy\\archive.zip', 'w')
for folder, subfolders, files in os.walk('C:\\Stories\\Fantasy'):
for file in files:
if file.endswith('.pdf'):
fantasy_zip.write(os.path.join(folder, file), os.path.relpath(os.path.join(folder,file), 'C:\\Stories\\Fantasy'), compress_type = zipfile.ZIP_DEFLATED)
fantasy_zip.close() |
cs |
<실행>
1
2 |
>>> import pzip
>>> pzip.ppzip("C:\\Users\\USER\Documents\\Python", "DataLog.txt", "DataLog.zip") |
cs |
아래 그림과 같이 DataLog.zip 폴더로 압축된다.