Översikt
Vårt bibliotek tillåter multiströmskomprimering för vissa format. Detta gör att du kan öka hastigheten för datakomprimering avsevärt.Parallellisering av BZIP2-, LZIP- och XZ-arkiv
Antalet komprimeringstrådar kan ställas in genom egenskapen "komprimeringstrådar" för motsvarande inställningsklass. Standardvärdet är 1, och komprimering utförs således på en enda tråd. Men om du ställer in ett värde större än ett, kommer algoritmen att använda motsvarande antal processorkärnor
Parallel compression to BZIP2
save_options = zp.bzip2.Bzip2SaveOptions()
save_options.compression_threads = 4
with zp.bzip2.Bzip2Archive() as archive:
archive.set_source("data.bin")
archive.save("archive.bz2", save_options)
Parallel compression to LZIP
# Will use 16Mb for dictionary:
settings = zp.lzip.LzipArchiveSettings(0x1000000)
settings.compression_threads = 4
with zp.lzip.LzipArchive(settings) as archive:
archive.set_source("data.bin")
archive.save("archive.lz")
Parallel compression to XZ
settings = zp.xz.settings.XzArchiveSettings()
settings.compression_threads = 4
with zp.xz.XzArchive(settings) as archive:
archive.set_source("data.bin")
archive.save("archive.xz")
I dessa exempel utför Python-kodsnuttarna liknande åtgärder för att skapa arkiv, och skiljer sig bara åt i de komprimeringsformat som används. De följer vanligtvis dessa steg:
- Skapa ett inställningsobjekt specifikt för arkivformatet.
- Ställ in antalet parallellitetsströmmar för komprimering.
- Ett arkivobjekt skapas i sammanhanget med, vilket säkerställer automatisk stängning av arkivet efter att åtgärderna är klara.
- Ange vilken datakälla som ska läggas till arkivet.
- Spara arkivet i lämpligt format med hjälp av de konfigurerade inställningarna.
LZMA2-komprimering och multitrådning i 7Z-arkiv
Det här exemplet visar hur man skapar ett 7z-arkiv med hjälp av filen data.bin. Vi använder LZMA2 komprimeringsalgoritm med fyra strömmar för att effektivt komprimera data.
Parallel compression to 7Z LZMA2
compression_settings = zp.saving.SevenZipLZMA2CompressionSettings()
compression_settings.compression_threads = 4
entry_settings = zp.saving.SevenZipEntrySettings(compression_settings)
with zp.sevenzip.SevenZipArchive(entry_settings) as archive:
archive.create_entry("data.bin", "data.bin")
archive.save("result.7z")
Den här koden skapar ett 7z-arkiv genom att läsa data från data.bin-filen, med SevenZipLZMA2CompressionSettings istället för inställningarna för Bzip2, Lzip eller XZ, och LZMA2-komprimeringsalgoritmen med fyra trådar för komprimering. Den använder metoden create_entry från SevenZipArchive istället för set_source-metoden.
Snabba upp ZIP-arkivering med parallell komprimering
Skapandet av ett ZIP-arkiv kan parallelliseras på ingångsnivå. För att göra detta, använd ParallelOptions-instansen och dess egenskaper
parallel_opt = zp.saving.ParallelOptions()
parallel_opt.parallel_compress_in_memory = zp.saving.ParallelCompressionMode.AUTO
save_opt = zp.saving.ArchiveSaveOptions()
save_opt.parallel_options = parallel_opt
with zp.Archive as archive:
archive.create_entries("~/Data")
archive.Save("archive.zip", save_opt)
Huvudfunktionerna är:
- Använda ParallelOptions för att konfigurera parallell komprimering i minnet.
- Använda ArchiveSaveOptions för allmänna sparainställningar.
- Använda metoden create_entries för att lägga till filer från ~/Data-katalogen till arkivet.
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
- Lärresurser
- Dokumentation
- Källkod
- API-referenser
- Produktsupport
- Gratis support
- Betald support
- Blogg
- Release Notes
- Varför Aspose.Zip för Python.Net?
- Kundlista
- Framgångsberättelser