Panoramica
La nostra libreria consente la compressione multi-stream per alcuni formati. Ciò consente di aumentare significativamente la velocità di compressione dei dati.Parallelizzazione degli archivi BZIP2, LZIP e XZ
Il numero di thread di compressione può essere impostato tramite la proprietà "thread di compressione" della classe di impostazioni corrispondente. Il valore predefinito è 1 e la compressione viene quindi eseguita su un singolo thread. Tuttavia, se imposti un valore maggiore di uno, l’algoritmo utilizzerà il numero corrispondente di core del processore
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 questi esempi, i frammenti di codice Python eseguono azioni simili per la creazione di archivi, differendo solo per i formati di compressione utilizzati. Solitamente seguono questi passaggi:
- Crea un oggetto impostazioni specifico per il formato di archivio.
- Imposta il numero di flussi di parallelismo per la compressione.
- Viene creato un oggetto di archivio nel contesto di, che garantisce la chiusura automatica dell’archivio al termine delle operazioni.
- Specificare l’origine dati da aggiungere all’archivio.
- Salvare l’archivio nel formato appropriato utilizzando le impostazioni configurate.
Compressione LZMA2 e multithreading negli archivi 7Z
Questo esempio dimostra come creare un archivio 7z utilizzando il file data.bin. Utilizziamo l’algoritmo di compressione LZMA2 con quattro flussi per comprimere in modo efficiente i dati.
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")
Questo codice crea un archivio 7z leggendo i dati dal file data.bin, utilizzando SevenZipLZMA2CompressionSettings invece delle impostazioni per Bzip2, Lzip o XZ e l’algoritmo di compressione LZMA2 con quattro thread per la compressione. Utilizza il metodo create_entry di SevenZipArchive invece del metodo set_source.
Velocizza l’archiviazione ZIP con la compressione parallela
La creazione di un archivio ZIP può essere parallelizzata a livello base. Per fare ciò, utilizzare l’istanza ParallelOptions e le sue proprietà
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)
Le caratteristiche principali sono:
- Utilizzo di ParallelOptions per configurare la compressione parallela in memoria.
- Utilizzo di ArchiveSaveOptions per le impostazioni generali di salvataggio.
- Utilizzo del metodo create_entries per aggiungere file da la directory ~/Data nell’archivio.
Altre funzionalità API Aspose.ZIP per Python.Net supportate
Con la libreria Aspose.ZIP in Python.Net, puoi gestire senza problemi varie attività relative ai documenti di file ZIP. Se hai bisogno di convertire formati, unire file, modificare contenuti o estrarre dati, Aspose.ZIP offre funzionalità complete per semplificare il flusso di lavoro e migliorare la produttività.
Support and Learning Resources
- Risorse di apprendimento
- Documentazione
- Codice sorgente
- Riferimenti API
- Supporto al prodotto
- Supporto gratuito
- Supporto a pagamento
- Blog
- Note di rilascio
- Perché Aspose.Zip per Python.Net?
- Elenco clienti
- Storie di successo