티스토리 뷰

프로그래밍/Python

Zip 압축

에어버스 2018. 6. 21. 16:42

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 폴더로 압축된다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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 26
27 28 29 30