Python Plik ZIP z przykładem
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 daje Ci kontrolę nad plikami, które chcesz zarchiwizować
ZipFile.write(filename)
Oto kroki, jak utworzyć plik Zip Python
Krok 1) Aby utworzyć plik archiwum z Python, upewnij się, że twoje oświadczenie importu jest poprawne i w odpowiedniej kolejności. Oto oświadczenie importu dla archiwum from shutil import make_archive
Objaśnienie kodu
- Importuj klasę make_archive z modułu shutil
- Użyj funkcji split, aby oddzielić katalog i nazwę pliku od ścieżki do lokalizacji pliku tekstowego (guru99)
- Następnie wywołujemy moduł „shutil.make_archive(“guru99 archive, “zip”, root_dir)”, aby utworzyć plik archiwum, który będzie w formacie zip
- Następnie przekazujemy do katalogu głównego rzeczy, które chcemy spakować. Zatem wszystko w katalogu zostanie spakowane
- Po uruchomieniu kodu po prawej stronie panelu możesz zobaczyć, że został utworzony plik archiwum zip.
Krok 2) Po utworzeniu pliku archiwum możesz kliknąć prawym przyciskiem myszy na plik i wybrać system operacyjny, a zostaną w nim wyświetlone pliki archiwum, jak pokazano poniżej
Teraz plik archive.zip pojawi się na Twoim systemie operacyjnym (Windows Explorer)
Krok 3) Po dwukrotnym kliknięciu pliku zobaczysz listę wszystkich zawartych w nim plików.
Krok 4) In Python możemy mieć większą kontrolę nad archiwum, ponieważ możemy zdefiniować, który konkretny plik uwzględnić w archiwum. W naszym przypadku uwzględnimy dwa pliki w archiwum „guru99.txt” i „guru99.txt.bak”.
Objaśnienie kodu
- Importuj klasę Zipfile z pliku zip Python moduł. Moduł ten 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” w odniesieniu do utworzonego przez nas pliku ZIP
- Używając funkcji write na zmiennej „newzip” dodajemy do archiwum pliki „guru99.txt” i „guru99.txt.bak”
Po wykonaniu kodu zobaczysz, że po prawej stronie panelu tworzony jest plik o nazwie „guru99.zip”
Note: Tutaj nie wydajemy żadnego polecenia „zamknięcia” pliku, np. „newzip.close”, ponieważ używamy blokady zakresu „With”, więc gdy program wyjdzie poza ten zakres, plik zostanie wyczyszczony i automatycznie zamknięty.
Krok 5) Kiedy -> kliknij prawym przyciskiem myszy plik (testguru99.zip) i -> wybierz swój system operacyjny (Windows Explorer), w folderze zostaną wyświetlone pliki archiwum, jak pokazano poniżej.
Po dwukrotnym kliknięciu pliku „testguru99.zip” zostanie otwarte kolejne okno, w którym wyświetlone zostaną zawarte w nim pliki.
Oto pełny kod
Python 2 Przykład
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive def main(): # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive", "zip", root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip","w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak") if __name__== "__main__": main()
Python 3 Przykład
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive","zip",root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip", "w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak")
Podsumowanie
- Aby skompresować cały katalog użyj polecenia „shutil.make_archive(“name”,”zip”, root_dir)
- Aby wybrać pliki do spakowania użyj polecenia „ZipFile.write(nazwa pliku)”