概述

我們的庫允許對某些格式進行多流壓縮。這使您可以顯著提高資料壓縮的速度。

並行化 BZIP2、LZIP 和 XZ 檔案

壓縮線程的數量可以透過對應設定類別的“壓縮線程”屬性來設定。預設值為 1,因此壓縮是在單一執行緒上執行的。但是,如果您設定的值大於 1,演算法將使用相應數量的處理器核心

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")

在這些範例中,Python 程式碼片段執行類似的建立檔案的操作,只是使用的壓縮格式不同。他們通常遵循以下步驟:

  • 建立特定於存檔格式的設定物件。 ,確保操作完成後自動關閉存檔。 /ul>

7Z 檔案中的 LZMA2 壓縮和多線程

此範例示範如何使用 data.bin 檔案建立 7z 存檔。我們使用具有四個流的LZMA2壓縮演算法來有效地壓縮資料。

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")

此程式碼透過從 data.bin 檔案讀取資料來建立 7z 存檔,使用 SevenZipLZMA2CompressionSettings 而不是 Bzip2、Lzip 或 XZ 的設置,以及具有四個壓縮執行緒的 LZMA2 壓縮演算法。它使用 SevenZipArchive 的 create_entry 方法而不是 set_source 方法。

透過並行壓縮加速 ZIP 歸檔

ZIP 檔案的建立可以在入門級並行。為此,請使用 ParallelOptions 實例及其屬性

    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)

主要功能包括:

  • 使用 ParallelOptions 設定並行記憶體壓縮。
請參閱文件以更好地理解 ParallelCompressionMode 枚舉值的含義。根據您的目的和硬體配置,使用這些值來達到最佳結果。

Python.Net API 支援的其他 Aspose.ZIP 功能

透過Python.Net中的Aspose.ZIP庫,您可以無縫處理與ZIP文件文件相關的各種任務。無論您需要轉換格式、合併文件、編輯內容或提取數據,Aspose.ZIP 都提供全面的功能來簡化您的工作流程並提高工作效率。

  

Support and Learning Resources

  
  

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