Python zip archive of a directory
디렉토리를 .zip
파일로 압축하는 것은 자주 있는 일이다.
짧은 코드로 글을 정리한다. 참조
무압축
방법은 zipfile, shutil 모듈을 사용한 방법으로 나뉜다. 결과는 같으나 편리함이 다르다.
shutil
import shutil
shutil.make_archive(output_filename, 'zip', dir_name)
zipfile
import os
import zipfile
def zipdir(path, ziph):
# ziph is zipfile handle
for root, dirs, files in os.walk(path):
for file in files:
ziph.write(os.path.join(root, file))
if __name__ == '__main__':
zipf = zipfile.ZipFile('Python.zip', 'w')
zipdir('tmp/', zipf)
zipf.close()
shutil을 사용한 경우보다 코드가 약간 길지만, 이 방법을 사용하면 for file in files:
부분에서 원하는 파일만 선택 하는 등의 추가 동작이 가능하다.
압축
import os
import zipfile
def zipdir(path, ziph):
# ziph is zipfile handle
for root, dirs, files in os.walk(path):
for file in files:
ziph.write(os.path.join(root, file))
if __name__ == '__main__':
zipf = zipfile.ZipFile('Python.zip', 'w', zipfile.ZIP_DEFLATED)
zipdir('tmp/', zipf)
zipf.close()
zipfile.ZIP_DEFLATED
옵션을 넣어주면 된다.
'Python' 카테고리의 다른 글
Python argparse (0) | 2016.02.10 |
---|---|
Python itertools (0) | 2016.02.09 |
Python JSON (0) | 2016.02.09 |
python multiprocessing (0) | 2016.02.09 |
python multiprocessing AttributeError (0) | 2016.02.08 |