Plik ZIP w Pythonie z przykładem

Anonim

Python umożliwia szybkie tworzenie archiwów zip / tar.

Następujące polecenie spakuje cały katalog

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

Poniższe polecenie zapewnia kontrolę nad plikami, które chcesz zarchiwizować

ZipFile.write(filename)

Oto kroki, aby utworzyć plik Zip w Pythonie

Krok 1) Aby utworzyć plik archiwum w Pythonie, upewnij się, że instrukcja importu jest poprawna i uporządkowana. Oto instrukcja importu archiwum

from shutil import make_archive

Objaśnienie kodu

  • Importuj klasę make_archive z modułu shutil
  • Użyj funkcji podziału, aby podzielić katalog i nazwę pliku ze ścieżki do lokalizacji pliku tekstowego (guru99)
  • Następnie nazywamy moduł „shutil.make_archive („ archiwum guru99, „zip”, katalog_główny) ”, aby utworzyć plik archiwum, który będzie w formacie zip
  • Następnie przekazujemy katalog główny rzeczy, które chcemy spakować. Więc wszystko w katalogu zostanie spakowane
  • Po uruchomieniu kodu możesz zobaczyć, że plik archiwum ZIP jest tworzony po prawej stronie panelu.

Krok 2)

  • Po utworzeniu pliku archiwum możesz kliknąć plik prawym przyciskiem myszy i wybrać system operacyjny, który pokaże w nim pliki archiwum, jak pokazano poniżej

    Teraz twój plik archive.zip pojawi się w systemie operacyjnym (Eksplorator Windows)

    Krok 3) Po dwukrotnym kliknięciu pliku zobaczysz listę wszystkich plików.

    Krok 4) W Pythonie możemy mieć większą kontrolę nad archiwum, ponieważ możemy zdefiniować, który konkretny plik ma być dołączony do archiwum. W naszym przypadku umieścimy dwa pliki w archiwum „guru99.txt” i „guru99.txt.bak”.

    Objaśnienie kodu

    • Importuj klasę Zipfile z modułu Python pliku zip. Ten moduł daje pełną kontrolę nad tworzeniem plików zip
    • Tworzymy nowy plik ZIP o nazwie („testguru99.zip,„ w ”)
    • Tworzenie nowej klasy Zipfile wymaga przekazania uprawnień, ponieważ jest to plik, więc musisz zapisać informacje do pliku jako newzip
    • Użyliśmy zmiennej "newzip", aby odnieść się do utworzonego przez nas pliku zip
    • Używając funkcji zapisu w zmiennej „newzip”, dodajemy do archiwum pliki „guru99.txt” i „guru99.txt.bak”

    Po uruchomieniu kodu widać, że plik jest tworzony po prawej stronie panelu o nazwie "guru99.zip"

    Uwaga : tutaj nie podajemy żadnego polecenia "zamknięcia" pliku, takiego jak "newzip.close", ponieważ używamy blokady zakresu "With", więc gdy program znajdzie się poza tym zakresem, plik zostanie wyczyszczony i automatycznie zamknięty.

    Krok 5) Kiedy -> kliknij prawym przyciskiem myszy plik (testguru99.zip) i -> wybierz swój system operacyjny (Eksplorator Windows) , pokaże pliki archiwum w folderze, jak pokazano poniżej.

    Po dwukrotnym kliknięciu pliku „testguru99.zip” otworzy się kolejne okno, które pokaże zawarte w nim pliki.

    Oto pełny kod

    Przykład Pythona 2

    import osimport shutilz pliku zip import ZipFileze ścieżki importu systemu operacyjnegoz importu shutil make_archivedef main ():# Sprawdź, czy plik istniejejeśli path.exists („guru99.txt”):# uzyskać ścieżkę do pliku w bieżącym katalogusrc = path.realpath ("guru99.txt");# zmień nazwę oryginalnego plikuos.rename („kariera.guru99.txt”, „guru99.txt”)# teraz umieść rzeczy w archiwum ZIProot_dir, tail = path.split (src)shutil.make_archive ("archiwum guru99", "zip", katalog_główny)# bardziej precyzyjna kontrola nad plikami ZIPz ZipFile ("testguru99.zip", "w") jako nowyzip:newzip.write („guru99.txt”)newzip.write („guru99.txt.bak”)if __name __ == "__main__":Główny()

    Przykład Pythona 3

    import osimport shutilz pliku zip import ZipFileze ścieżki importu systemu operacyjnegoz importu shutil make_archive# Sprawdź, czy plik istniejejeśli path.exists („guru99.txt”):# uzyskać ścieżkę do pliku w bieżącym katalogusrc = path.realpath ("guru99.txt");# zmień nazwę oryginalnego plikuos.rename („kariera.guru99.txt”, „guru99.txt”)# teraz umieść rzeczy w archiwum ZIProot_dir, tail = path.split (src)shutil.make_archive ("archiwum guru99", "zip", katalog_główny)# bardziej precyzyjna kontrola nad plikami ZIPz ZipFile ("testguru99.zip", "w") jako nowyzip:newzip.write („guru99.txt”)newzip.write („guru99.txt.bak”)

    Podsumowanie

    • Aby spakować cały katalog, użyj polecenia „shutil.make_archive („ nazwa ”,„ zip ”, katalog_główny)
    • Aby wybrać pliki do spakowania, użyj polecenia „ZipFile.write (nazwa pliku)”