목차
파이썬으로 파일 압축 하는 방법
파이썬을 사용하면 zip/tar 아카이브를 빠르게 만들 수 있습니다.
다음 명령은 전체 디렉토리를 압축합니다.
shutil.make_archive(output_filename, 'zip', dir_name)
다음 명령을 사용하면 압축하려는 파일을 제어할 수 있습니다.
ZipFile.write(filename)
파이썬에서 Zip 파일을 만드는 방법
Step1 :
파이썬에서 압축파일을 생성 하려면 import문이 정확하고 순서대로 되어있는지 확인하십시오.
압축에 대한 import문은 다음과 같습니다.
from shutil import make_archive
- 모듈 shutil에서 make_archive 클래스 가져오기
- 분할 기능을 사용하여 경로에서 텍스트 파일 위치(Entity01)까지의 디렉토리와 파일 이름을 분할합니다.
- 그런 다음 "shutil.make_archive("Entity01 archive, "zip", root_dir)" 모듈을 호출하여 zip 형식의 아카이브 파일을 생성합니다.
- 그런 다음 압축하려는 항목의 루트 디렉토리를 전달합니다. 따라서 디렉토리의 모든 항목이 압축됩니다.
- 코드를 실행하면 패널 오른쪽에 아카이브 zip 파일이 생성된 것을 확인할 수 있습니다.
Step2 :
압축파일이 생성되면 파일의 마우스 오른쪽 버튼을 클릭해서 Explorer(윈도우 탐색기)를 클릭하면 아래와 같이 압축파일이 표시됩니다.
이제 압축된 zip 파일이 윈도우탐색기에 나타납니다.
Step 3 :
파일을 두번클릭하면 파일에 있는 목록이 표시 됩니다.
(저는 압축파일과련 기본 프로그램이 알집으로 되어있습니다...)
Step4 :
파이썬에서는 아카이브에 포함할 특정 파일을 정의할 수 있으므로 아카이브를 더 잘 제어할 수 있습니다. 이 경우 “Entity01.txt” 및 “Entity01.txt.bak” 아카이브 아래에 두 개의 파일을 포함합니다 .
코드설명 :
- zip 파일 Python 모듈에서 Zipfile 클래스를 가져옵니다. 이 모듈은 zip 파일 생성에 대한 모든 권한을 제공합니다.
- 이름( "Test_Entity01.zip, "w")으로 새 Zip 파일을 만듭니다.
- 새 Zipfile 클래스를 생성하려면 파일이기 때문에 권한을 전달해야 하므로 파일에 정보를 newzip으로 작성해야 합니다.
- 생성한 zip 파일을 참조하기 위해 "newzip" 변수를 사용했습니다.
- "newzip" 변수에 쓰기 기능을 사용하여 "Entity01.txt" 및 "Entity01.txt.bak" 파일을 아카이브에 추가합니다.
코드를 실행하면 패널에 "Test_Entity01.zip"이라는 이름으로 파일이 생성되는 것을 볼 수 있습니다.
참고 : 여기에서는 "With" 범위 잠금을 사용하기 때문에 "newzip.close"와 같은 파일을 "close" 명령을 제공하지 않습니다. 따라서 프로그램이 이 범위를 벗어나면 파일이 정리되고 자동으로 닫힙니다.
Step 5 :
파일(Test_Entity01.zip) 을 마우스 오른쪽 버튼으로 클릭하고 -> Explorer(Windows 탐색기) 를 선택하면 아래와 같이 폴더에 아카이브 파일이 표시됩니다.
"Test_Entity01.zip" 파일을 두 번 클릭하면 다른 창이 열리고 여기에 포함된 파일이 표시됩니다.
전체코드
import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive
def main():
# 파일이 존재하는지 확인
if path.exists("Entity01.txt"):
# 현재 디렉토리에 있는 파일의 경로를 얻는다.
src = path.realpath("Entity01.txt");
# 원본 파일의 이름을 바꿉니다.
os.rename("career.Entity01.txt", "Entity01.txt")
# 이제 ZIP 아카이브에 파일을 넣습니다.
root_dir,tail = path.split(src)
shutil.make_archive("Entity archive","zip",root_dir)
# ZIP 파일에 대한 보다 세분화된 제어
with ZipFile("Test_Entity.zip", "w") as newzip:
newzip.write("Entity01.txt")
newzip.write("Entity01.txt.bak")
if __name__ == "__main__":
main()
요약 :
- 전체 디렉토리를 압축하려면 "shutil.make_archive("name","zip", root_dir) 명령을 사용하십시오.
- 압축할 파일을 선택하려면 "ZipFile.write(파일 이름)" 명령을 사용하십시오.
'초보자를 위한 Python > 6. Python 파일처리' 카테고리의 다른 글
6.7 파이썬 readline() 메서드 예제로 설명하기 (0) | 2022.11.16 |
---|---|
6.6 파이썬 예외 처리: try, catch, finally & raise (0) | 2022.11.16 |
6.4 파이썬 파일이름 폴더이름 바꾸기 os.rename() (0) | 2022.11.14 |
6.3 파이썬 파일복사 방법 : shutil.copy(), shutil.copystat() (0) | 2022.11.11 |
6.2 파일 존재여부 확인 : 디렉토리 존재여부 확인법 (0) | 2022.11.10 |
댓글