Plik skompresowany zawiera wiele plików, katalog. Dostępnych jest wiele aplikacji do utworzenia plik kompresji dowolnego dużego pliku lub katalogu oraz pobierania plików lub folderów poprzez wyodrębnienie kompresowanego pliku. Gdy chcemy przenieść dowolny duży lub folder przez Internet, lepiej jest kompresować treść przed przeniesieniem. To sprawia, że zadanie jest szybsze. Możesz użyć skryptów Python do kompresji i wyodrębnienia dowolnego dużego pliku lub katalogu.
plik zip Moduł Pythona jest używany do wykonania zadania. Jak możesz użyć Python3 do kompresji dowolnego pliku lub katalogu, jest pokazany w tym samouczku za pomocą różnych przykładów.
Przykład-1: kompresowanie jednego pliku
Utwórz nowy plik o nazwie 'ZipCode1.py ' i dodaj następujący kod. plik zip Moduł jest importowany w celu kompresji pliku. Temp.zamek błyskawiczny jest przypisany jako nazwa pliku zip z trybem zapisu i następnej oryginalnej nazwy pliku, Temp.tekst a typ kompresu podano jako parametry w metodzie zapisu.
Importuj Zipfile
Zip_file = Zipfile.Zipfile („Temp.Zip ', „w”)
plik zip.Napisz („Temp.txt ', compress_type = zipfile.Zip_deflated)
plik zip.zamknąć()
Uruchom skrypt
$ Python3 Zipcode1.py
Rozmiar Temp.tekst Jest 27 bajtów i po kompresji rozmiar Temp.zamek błyskawiczny Jest 2 bajty.
Przykład-2: kompresowanie określonego katalogu
Utwórz nowy plik o nazwie 'Zipcode2.py ' i dodaj następujący kod. Katalog może zawierać wiele plików, folderów i podfolderów. Aby przeczytać treść katalogu, OS moduł Pythona jest importowany z plik zip moduł do kompresji katalogu. W tym skrypcie, mydir Katalog służy do kompresji.
# Wymagane moduły importowe
Import OS
Importuj Zipfile
# Deklaruj funkcję zwrócenia wszystkich ścieżek plików konkretnego katalogu
def Rentieve_file_paths (dirname):
# Zmienna ścieżki plików konfiguracji
FilePaths = []
# Przeczytaj wszystkie katalog, podkatalogy i listy plików
dla root, katalogi, pliki w systemie operacyjnym.Walk (dirname):
dla nazwy pliku w plikach:
# Utwórz pełny firepath za pomocą modułu OS.
FilePath = OS.ścieżka.dołącz (root, nazwa pliku)
Firepaths.Dodatek (FilePath)
# Zwróć wszystkie ścieżki
Zwrot filePatów
# Deklaruj główną funkcję
def main ():
# Przypisz nazwę katalogu do ZIP
dir_name = „mydir”
# Wywołaj funkcję, aby pobrać wszystkie pliki i foldery przypisanego katalogu
FilePaths = retieve_file_paths (dir_name)
# Drukowanie listy wszystkich plików do zamka
Drukuj („Poniższa lista plików zostanie zapinana na zamek:”)
dla nazwy pliku w Filepaths:
Drukuj (nazwa pliku)
# Pisanie plików na zipfile
Zip_file = Zipfile.ZipFile (dir_name+'.Zip ', „w”)
Z zip_file:
# Zapisanie każdego pliku jeden po drugim
dla pliku w FilePaths:
plik zip.zapisz (plik)
Drukuj (nazwa dir_name+'.Plik zip jest tworzony pomyślnie!')
# Wywołaj funkcję główną
Jeśli __name__ == "__main__":
główny()
Uruchom skrypt
$ Python3 Zipcode2.py
Rozmiar mydir Jest 21 bajtów i po kompresji rozmiar mydir.zamek błyskawiczny Jest 2 bajty.
Przykład-3: kompresowanie katalogu podanego przez argument wiersza poleceń
Utwórz nowy plik o nazwie 'ZipCode3.py ' i dodaj następujący kod. Aby odczytać wartość wiersza poleceń, kolejny moduł Python Sys jest importowany z OS I plik zip moduły.
# Wymagane moduły importowe
Import OS
Import Sys
Importuj Zipfile
# Deklaruj funkcję zwrócenia wszystkich ścieżek plików określonego katalogu
def Rentieve_file_paths (dirname):
# Zmienna ścieżki plików konfiguracji
FilePaths = []
# Przeczytaj wszystkie katalog, podkatalogy i listy plików
dla root, katalogi, pliki w systemie operacyjnym.Walk (dirname):
dla nazwy pliku w plikach:
# Utwórz pełny firepath za pomocą modułu OS.
FilePath = OS.ścieżka.dołącz (root, nazwa pliku)
Firepaths.Dodatek (FilePath)
# Zwróć wszystkie ścieżki
Zwrot filePatów
# Deklaruj główną funkcję
def main ():
# Sprawdź dwa argumenty w momencie uruchomienia skryptu
Jeśli Len (sys.Argv) != 2:
Drukuj („Wpisz nazwę katalogu do ZIP”)
Sys.Wyjście (1)
# Ustaw nazwę katalogu z argumentu poleceń
dir_name = sys.Argv [1]
# Ustaw nazwę pliku zip
ZipFileName = dir_name + ".zamek błyskawiczny"
# Wywołaj funkcję, aby pobrać wszystkie pliki i foldery przypisanego katalogu
FilePaths = retieve_file_paths (dir_name)
# Wydrukuj listę plików do zamka
Drukuj („Poniższa lista plików zostanie zapinana na zamek:”)
dla nazwy pliku w Filepaths:
Drukuj (nazwa pliku)
# Napisz pliki i foldery do zipfile
Zip_file = Zipfile.Zipfile (ZipfileName, „W”)
Z zip_file:
# Zapisz każdy plik oddzielnie
dla pliku w FilePaths:
plik zip.zapisz (plik)
druk (plik ZipFileName+'jest tworzony pomyślnie!')
# Wywołaj funkcję główną
Jeśli __name__ == "__main__":
główny()
Uruchom skrypt
$ Python3 Zipcode3.py
test jest podana jako nazwa katalogu w argumencie wiersza poleceń. Rozmiar test Jest 21 bajtów i po kompresji rozmiar test.zamek błyskawiczny Jest 2 bajty.
Mam nadzieję, że ten samouczek pomoże ci użyć Pythona do kompresji dowolnego pliku lub katalogu.