Überblick
Unsere Bibliothek ermöglicht für einige Formate die Multi-Stream-Komprimierung. Dadurch können Sie die Geschwindigkeit der Datenkomprimierung deutlich erhöhen.Parallelisierung von BZIP2-, LZIP- und XZ-Archiven
Die Anzahl der Komprimierungsthreads kann über die Eigenschaft „Komprimierungsthreads“ der entsprechenden Einstellungsklasse festgelegt werden. Der Standardwert ist 1 und die Komprimierung erfolgt somit in einem einzelnen Thread. Wenn Sie jedoch einen Wert größer als eins einstellen, verwendet der Algorithmus die entsprechende Anzahl an Prozessorkernen
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")
In diesen Beispielen führen die Python-Codefragmente ähnliche Aktionen zum Erstellen von Archiven aus und unterscheiden sich nur in den verwendeten Komprimierungsformaten. Sie folgen normalerweise diesen Schritten:
- Erstellen Sie ein Einstellungsobjekt speziell für das Archivformat.
- Legen Sie die Anzahl der Parallelitätsströme für die Komprimierung fest.
- Ein Archivobjekt wird erstellt im Kontext mit, wodurch das automatische Schließen des Archivs nach Abschluss der Vorgänge sichergestellt wird.
- Geben Sie die Datenquelle an, die dem Archiv hinzugefügt werden soll.
- Speichern Sie das Archiv im entsprechenden Format mit die konfigurierten Einstellungen.
LZMA2-Komprimierung und Multithreading in 7Z-Archiven
Dieses Beispiel zeigt, wie Sie mithilfe der Datei data.bin ein 7z-Archiv erstellen. Wir verwenden den LZMA2-Komprimierungsalgorithmus mit vier Streams, um Daten effizient zu komprimieren.
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")
Dieser Code erstellt ein 7z-Archiv, indem er die Daten aus der Datei data.bin liest, SevenZipLZMA2CompressionSettings anstelle der Einstellungen für Bzip2, Lzip oder XZ und den LZMA2-Komprimierungsalgorithmus mit vier Threads für die Komprimierung verwendet. Es verwendet die Methode create_entry von SevenZipArchive anstelle der Methode set_source.
Beschleunigen Sie die ZIP-Archivierung durch parallele Komprimierung
Die Erstellung eines ZIP-Archivs kann auf der Einstiegsebene parallelisiert werden. Verwenden Sie dazu die ParallelOptions-Instanz und ihre Eigenschaften
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)
Die Hauptfunktionen sind:
- Verwenden von ParallelOptions zum Konfigurieren der parallelen In-Memory-Komprimierung.
- Verwenden von ArchiveSaveOptions für allgemeine Speichereinstellungen.
- Verwenden der Methode „create_entries“ zum Hinzufügen von Dateien aus das ~/Data-Verzeichnis in das Archiv.
Weitere unterstützte Aspose.ZIP für Python.Net-API-Funktionen
Mit der Aspose.ZIP-Bibliothek in Python.Net können Sie verschiedene Aufgaben im Zusammenhang mit ZIP-Dateidokumenten nahtlos erledigen. Unabhängig davon, ob Sie Formate konvertieren, Dateien zusammenführen, Inhalte bearbeiten oder Daten extrahieren müssen, bietet Aspose.ZIP umfassende Funktionen, um Ihren Arbeitsablauf zu optimieren und die Produktivität zu steigern.
Support and Learning Resources
- Lernmittel
- Dokumentation
- Quellcode
- API-Referenzen
- Produkt Support
- Kostenloser Support
- Bezahlter Support
- Blog
- Versionshinweise
- Warum Aspose.Zip für Python.Net?
- Kundenliste
- Erfolgsgeschichten