Python Tarfile

Python Tarfile
Format pliku TAR służy do przechowywania lub archiwizacji kilku plików w jednym pliku. Jest to bardzo przydatne podczas wysyłania lub przesyłania dużej ilości/pakietu plików do sieci lub w przypadku archiwizacji starszych plików. W systemie operacyjnym UNIX najpierw wprowadzono narzędzia „TAR”. Jego celem jest skompilowanie licznych plików w jednym pliku archiwum, często określanym jako tarball, co ułatwia dystrybucję danych. Moduł Tarfile standardowej biblioteki Pythona zawiera funkcje, które pomagają w tworzeniu plików TAR lub archiwach i wyodrębnianiu danych w razie potrzeby z Tarball. Archiwa można albo utworzyć bez kompresji lub za pomocą GZIP, BZ2 i LZMA.

Jaki jest moduł Tarfile w Pythonie?

Nie musimy jednoznacznie instalować modułu Tarfile, ponieważ jest on częścią standardowej biblioteki Python; Wszystko, co musimy zrobić, to „importować”. Czytanie i pisanie archiwa TAR mogą być znacznie prostsze niż powinny być metodami dostarczonymi przez moduł Pythona „Tarfile”. Wbudowany moduł „Tarfile” w Python zapewnia potężny interfejs do pisania i czytania plików TAR.

Tryby plików do otwarcia plików TAR Python

Poniżej przedstawiono niektóre tryby plików, które można użyć w Pythonie do otwarcia tarczy:

R: Otwiera plik TAR do odczytania.

R: Otwiera plik TAR i odczytuje jego nieskompresowaną wersję.

w lub w: Umożliwia nieskompresowane pisanie, otwierając plik TAR.

A lub A: Otwiera plik TAR, aby dane mogły zostać dołączone bez kompresji.

R: GZ: Otwiera plik smoczny z kompresji GZIP do odczytu.

W: GZ: Otwiera plik smoczny z kompresji GZIP do pisania.

R: BZ2: Otwiera plik TAR skompresowanego BZIP2 do odczytu.

W: BZ2: Otwiera plik TAR skompresowanej BZIP2 do pisania.

Teraz użyjmy modułu Tarfile, aby zrozumieć, jak to działa w Python.

Tworzenie pliku TAR

Moduł Tarfile w Python umożliwia nam tworzenie plików TAR. Najpierw otwórz plik TAR w trybie zapisu. Następnie dodaj pakiet plików lub pojedynczy plik do pliku TAR.

Przykład 1: Tworzenie pliku TAR za pomocą funkcji Open ()

Tutaj używamy funkcji Open () do utworzenia pliku TAR i metody dodawania () do dodania innych plików do pliku TAR.

Wyjście

Tutaj pierwszym wejściem do metody Open () jest nazwa naszego pliku TAR, który należy utworzyć, a następnie argument „W”, aby otworzyć plik (Tarfile) w trybie zapisu. Nazwa pliku, którą należy dodać lub zarchiwizować do „.plik TAR ”jest przekazywany w metodzie add () jako wejście. Archiwizujemy trzy pliki w naszym pliku TAR za pomocą funkcji add () w obiekcie pliku

Przykład 2: OS.Funkcja ListDir () do tworzenia i wyświetlania plików

Metoda ListDir () zwraca listę plików i katalogów, które znajdują się w określonym katalogu. Korzystając z modułu Tarfile, najpierw tworzymy nasz tarfile. Następnie dodajemy pliki do naszego pliku TAR za pomocą funkcji add (). Po dodaniu plików do pliku TAR, otrzymujemy listę plików, które zostały zarchiwizowane w „.plik TAR ”za pomocą systemu operacyjnego.Funkcja Listdir (). Aby użyć tej funkcji, musimy zaimportować moduł OS.

Plik TAR „Folder” jest tworzony przez archiwizację wszystkich plików przechowywanych w folderze „Data”. Funkcja getNames () zwraca nazwy plików przechowywane w pliku TAR „Folder”.

Jak sprawdzić, czy plik jest tar, czy nie

Korzystając z metody is_tarfile () w module Tarfile, możemy szybko ustalić, czy plik ma „.rozszerzenie smoły ”.

Mijamy nazwę „my_file.plik TAR ”w module IS_TARFILE (), aby sprawdzić, czy jest to plik TAR, czy nie. Funkcja zwraca true, co oznacza, że ​​określony plik jest plik smaru. Sprawdźmy kolejny plik.

Od „Uwaga.txt ”nie jest plik smaru, funkcja zwraca false jako wyjście.

Czytanie pliku TAR

Biblioteka Tarfile może pomóc w odczytaniu plików TAR bez ich wyodrębnienia. Tarfile.Otwórz (FilePath, tryb) można użyć do otwarcia pliku smoły w Python. Plik/ścieżka to bezwzględna lub względna lokalizacja pliku, którą chcemy odczytać. Zamiast trybu można użyć różnych rodzajów parametrów.

Możemy również odczytać plik otwarty w trybie kompresji. Metodę kompresji można opcjonalnie połączyć z trybem pracy. Zatem tryb [: kompresja] staje się nową składnią. Skróty obsługujące metody kompresji są następujące:

  • GZ dla Gzip
  • XZ dla LZMA
  • BZ2 dla BZ2

W poprzednim kodzie najpierw otwieramy plik TAR skompresowanej BZ2 do pisania. Następnie otwieramy kompresowany plik TAR BZ2 do odczytu.

Sprawdzanie zawartości pliku TAR

Korzystając z funkcji getNames () modułu Tarfile, możemy wyświetlić zawartość pliku smoły bez ich wyodrębnienia. Lista nazw plików jest zwracana przez funkcję getNames () modułu Tarfile. Tutaj otwieramy plik w trybie „odczyt”, więc „R” jest określony jako drugi argument w funkcji Open ().

Oepn „Projekt.plik TAR ”w trybie czytania. Funkcja getNames () zwraca nazwy plików zarchiwizowanych w „projekcie.plik smar ”. Aby wydrukować nazwy zawartości/plików, pętla jest używana do iteracji plików w pliku TAR.

Dodanie plików do pliku TAR

Korzystając z funkcji add () z modułu Tarfile, możemy bezpośrednio dodawać pliki do pliku TAR, tak jak to zrobiliśmy, kiedy utworzyliśmy plik TAR. W przeciwieństwie do poprzednich przykładów, „a” jest przekazywany do metody Open () jako drugi argument, ponieważ plik musi zostać otwarty w trybie dodatkowym.

Używamy trybu dodatku, aby otworzyć „projekt.plik smar ”. Pięć plików jest już obecnych w „PaoCject.plik smar ”. Dołączymy jeszcze trzy pliki za pomocą funkcji add () w obiekcie pliku.

Wyodrębnienie określonego pliku z pliku archiwum TAR

Do wyodrębnienia jednego pliku z zarchiwizowanego folderu można użyć funkcji ExtractFile () biblioteki Tarfile. Ta metoda akceptuje nazwę pliku jako wejście i wyodrębnia określony plik w naszym katalogu roboczym. Jeśli chcesz wyodrębnić więcej niż jeden plik, musisz wielokrotnie wywołać ekstrakt (). Wyodrębniając element jako obiekt pliku z archiwum, członkiem może być obiekt Tarinfo lub nazwa pliku. „Io.Obiekt BufferedReader ”zwraca, jeśli element jest normalnym plikiem lub linkiem. Brak jest prezentowany dla wszystkich innych istniejących/obecnych członków. Keyerror jest podniesiony, jeśli członek jest nieobecny w pliku archiwum.

Książki.plik XML ”jest wyodrębniony z„ projektu.plik smar ”.

Wyodrębnienie wszystkich plików z pliku TAR

Do wyodrębnienia całego pliku zapinanego zamiast jednego konkretnego pliku może użyć funkcji ExtractAll () biblioteki Tarfile. Poniższy obraz pokazuje katalog przed wyodrębnieniem plików zarchiwizowanego pliku.

Cała zawartość pliku TAR jest wyodrębniana w folderze w naszym bieżącym katalogu, „Dane”, metodą ExtractAll (). Teraz wyodrębnijmy pliki zarchiwizowanego pliku do tego folderu.

Wyjście

Funkcja z powodzeniem wyodrębniła wszystkie pliki do określonego folderu.

Wniosek

W tym artykule dowiedzieliśmy się, czym są pliki TAR lub archiwa TAR i jak korzystać z modułu Tarfile Pythona do tworzenia, uzyskiwania dostępu i zarządzania plikami TAR. Nauczyliśmy się trybów plików, których możemy użyć do otwarcia plików TAR w trybach czytania, pisania i kompresji. Wyjaśniliśmy metody wyświetlania plików po ich archiwizowaniu w TAR. Omówiliśmy, jak dołączyć pliki w pliku TAR. Dowiedzieliśmy się również, w jaki sposób można wyodrębnić konkretny plik lub wszystkie pliki w bieżącym katalogu.