Slå samman TAR med ZIP i Python

Olika datakomprimeringstekniker används för att minska storleken på filer och mappar för lagring eller överföring. Två vanliga komprimeringsformat är TAR och ZIP, var och en med sina egna styrkor och användningsfall. Men vad händer om du behöver kombinera dessa format? I det här blogginlägget kommer vi att utforska hur man slår samman TAR med ZIP i Python.

Python Library för att slå samman TAR med ZIP

Aspose.ZIP for Python är ett funktionsrikt bibliotek som låter dig arbeta med olika arkivformat inklusive ZIP och TAR. Du kan använda biblioteket för att skapa, lägga till, extrahera och manipulera arkiv utan ansträngning. Vi kommer att använda det här biblioteket för att slå samman TAR-filen med ZIP-arkivet.

Du kan ladda ner biblioteket eller installera det från PyPI.

> pip install aspose-zip

Varför slå ihop TAR med ZIP?

Innan vi dyker in i de tekniska detaljerna, låt oss kort diskutera varför du kanske vill slå ihop TAR med ZIP. Både TAR och ZIP har sina unika fördelar:

  • TAR: TAR är ett filarkiveringsformat som vanligtvis används i Unix- och Linux-system. Den är idealisk för att bunta ihop flera filer och kataloger till en enda fil utan komprimering. TAR-arkiv används ofta för säkerhetskopior och paketeringsfiler för distribution.

  • ZIP: ZIP är ett allmänt använt komprimeringsformat som inte bara paketerar filer och kataloger utan också komprimerar dem för att minska lagringsutrymmet och påskynda filöverföringar. ZIP stöds på flera plattformar och är kompatibelt med olika arkiveringsverktyg.

Att slå samman TAR med ZIP kan vara fördelaktigt i scenarier där du vill bevara katalogstrukturen för TAR-filer samtidigt som du får komprimeringsfördelarna med ZIP.

Slå samman TAR med ZIP i Python

Följande är stegen för att slå samman TAR med ZIP i Python.

  • Ladda först TAR-filen med klassen TarArchive.
  • Ladda sedan ZIP-arkivet med klassen Archive.
  • Efter det, gå igenom posterna i TAR med hjälp av Archive.entries-samlingen.
  • Extrahera varje post från TAR till ett BytesIO-objekt med metoden Archive.entries[index].extract(BytesIO).
  • Lägg till den extraherade posten till ZIP-arkivet med metoden Archive.createentry(string, BytesIO).
  • Slutligen sparar du ZIP-arkivet med metoden Archive.save(string).

Följande kodexempel visar hur man slår samman TAR med ZIP-arkivet i Python.

import aspose.zip as az
from io import BytesIO

# Ladda TAR-fil
with az.tar.TarArchive("source.tar") as source:
  
    # Ladda ZIP-fil
    with az.Archive("target.zip") as target:
      
        # Gå igenom TAR-poster och lägg till dem i ZIP
       for i in range(source.entries.length):
            if not source.entries[i].is_directory:
                ms = BytesIO()
                source.entries[i].extract(ms)
                target.create_entry(source.entries[i].name, ms)
            else:
                target.create_entry(source.entries[i].name + "/", None)
        
        # Spara ZIP-arkiv
        target.save("merged_tar_zip.zip")

Python ZIP Library - Skaffa en gratis licens

Skaffa en gratis tillfällig licens och arbeta med flera arkivformat utan utvärderingsbegränsningar.

Lärresurser

Lär dig mer om vårt Python ZIP-bibliotek med hjälp av resurserna nedan:

Online ZIP-verktyg

Använd våra kostnadsfria onlineverktyg för att arbeta med arkiv, som drivs av Aspose.ZIP för Python.

Slutsats

Att slå samman TAR med ZIP med Aspose.ZIP för Python är en enkel process som låter dig utnyttja styrkorna i båda arkiveringsformaten. Oavsett om du behöver paketera filer för distribution, skapa säkerhetskopior eller helt enkelt minska lagringsutrymmet, förenklar Aspose.ZIP uppgiften och ger dig finkornig kontroll över processen. Du kan enkelt följa riktlinjerna i det här blogginlägget och slå samman TAR med ZIP-arkiv i dina Python-applikationer.

Se även