Översikt

I vissa situationer är det nödvändigt att selektivt ta bort filer från arkivet. Borttagning kan utföras baserat på en mask eller något annat kriterium.
Aspose.ZIP stöder selektiv radering från flera format.

Python Ta bort fil från ZIP-arkiv

Metoden delete_entry används för att ta bort en hel post från ett ZIP-arkiv. Denna operation är oberoende och kräver inte ombearbetning av hela arkivet.
Poster i ZIP-arkivet kan raderas med hjälp av paret DeleteEntry . Att radera en post sker utan ompackning, så andra poster förblir oförändrade utan att dekomprimeras och komprimeras igen.

    with zp.Archive("archive.zip") as archive:
        while len(archive.entries) > 1:
            archive.delete_entry(archive.entries[0])
        archive.save("last_entry.zip")

Denna kod bearbetar det befintliga ZIP-arkivet "archive.zip". Den tar successivt bort alla poster utom den sista, vilket i praktiken skapar ett nytt arkiv med namnet "last_entry.zip" som bara innehåller den återstående filen.

Ta bort fil från TAR

Metoden delete_entry är också effektiv för att ta bort poster från ett TAR-arkiv. Denna process fungerar oberoende, vilket eliminerar behovet av att bearbeta hela arkivet. Genom att använda metoden delete_entry för TAR-filer, som visas i exemplet nedan, kan poster tas bort sömlöst, vilket säkerställer att de återstående posterna inte påverkas och inte genomgår dekomprimering eller omkomprimering.

    with zp.tar.TarArchive("two_files.tar") as archive:
        archive.delete_entry(0)
        archive.save("single_file.tar")

Om du vill ta bort poster från komprimerad tar (*.tar.gz), är det nödvändigt att dekomprimera det till vanlig *.tar.

CPIO Ta bort fil från arkiv

Poster kan raderas från CPIO liknande TAR.

    with zp.cpio.CpioArchive("two_files.cpio") as archive:
        archive.delete_entry(archive.entries[0]).save("single_file.cpio")

Kom ihåg att metoden delete_entry returnerar arkivinstansen. Detta hjälper dig att göra din kod mer kompakt i vissa fall.

Ta bort från XAR-filer

Xar-arkivet har också en raderingsmetod delete_entry.
I detta exempel tas alla poster bort utom den sista.

    with zp.xar.XarArchive("archive.xar") as archive:
        while len(archive.entries) > 1:
            archive.delete_entry(0)
        archive.save("last.xar")

Det här exemplet visar isolerad bearbetning, vilket innebär att det ändrar arkivet utan att påverka det komprimerade tillståndet för återstående poster. Koden tar iterativt bort poster från "archive.xar" tills bara en återstår. Slutligen sparas det resulterande arkivet som "last.xar".

Andra Aspose.ZIP för Python.Net API-funktioner som stöds

Med Aspose.ZIP-biblioteket i Python.Net kan du sömlöst hantera olika uppgifter relaterade till ZIP-fildokument. Oavsett om du behöver konvertera format, slå samman filer, redigera innehåll eller extrahera data, erbjuder Aspose.ZIP omfattande funktionalitet för att effektivisera ditt arbetsflöde och förbättra produktiviteten.

  

Support and Learning Resources

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: