본문 바로가기
초보자를 위한 Python/6. Python 파일처리

6.5 파이썬으로 압축 파일(zip, tar) 만들기

by 엔터티 2022. 11. 15.
반응형

목차

    파이썬으로 파일 압축 하는 방법

    파이썬을 사용하면 zip/tar 아카이브를 빠르게 만들 수 있습니다.

    다음 명령은 전체 디렉토리를 압축합니다.

    shutil.make_archive(output_filename, 'zip', dir_name)

     

    다음 명령을 사용하면 압축하려는 파일을 제어할 수 있습니다.

    ZipFile.write(filename)

    파이썬에서 Zip 파일을 만드는 방법

    Step1 :

    파이썬에서 압축파일을 생성 하려면 import문이 정확하고 순서대로 되어있는지 확인하십시오.

    압축에 대한 import문은 다음과 같습니다.

    from shutil import make_archive

     

    파이썬으로 zip파일로 압축하기

    • 모듈 shutil에서 make_archive 클래스 가져오기
    • 분할 기능을 사용하여 경로에서 텍스트 파일 위치(Entity01)까지의 디렉토리와 파일 이름을 분할합니다.
    • 그런 다음 "shutil.make_archive("Entity01 archive, "zip", root_dir)" 모듈을 호출하여 zip 형식의 아카이브 파일을 생성합니다.
    • 그런 다음 압축하려는 항목의 루트 디렉토리를 전달합니다. 따라서 디렉토리의 모든 항목이 압축됩니다.
    • 코드를 실행하면 패널 오른쪽에 아카이브 zip 파일이 생성된 것을 확인할 수 있습니다.

    Step2 :

    압축파일이 생성되면 파일의 마우스 오른쪽 버튼을 클릭해서 Explorer(윈도우 탐색기)를 클릭하면 아래와 같이 압축파일이 표시됩니다.

    zip 파일 탐색기로 열기

    이제 압축된 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 탐색기) 를 선택하면 아래와 같이 폴더에 아카이브 파일이 표시됩니다.

    zip 파일 탐색기로 열기
    윈도우탐색기에서 Test_Entity01.zip

    "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(파일 이름)" 명령을 사용하십시오.

     

     

     

    파이썬의 파일압축

    반응형

    댓글