개요
우리 라이브러리는 일부 형식에 대해 다중 스트림 압축을 허용합니다. 이를 통해 데이터 압축 속도를 크게 높일 수 있습니다.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 코드 조각은 사용된 압축 형식만 다를 뿐 아카이브 생성을 위해 유사한 작업을 수행합니다. 일반적으로 다음 단계를 따릅니다.
- 아카이브 형식과 관련된 설정 개체를 생성합니다.
- 압축을 위한 병렬 처리 스트림 수를 설정합니다.
- 아카이브 개체가 생성됩니다. 작업이 완료된 후 아카이브를 자동으로 닫는 것을 보장하는 컨텍스트에서.
- 아카이브에 추가할 데이터 소스를 지정합니다.
- 다음을 사용하여 적절한 형식으로 아카이브를 저장합니다. 구성된 설정입니다.
7Z 아카이브의 LZMA2 압축 및 멀티스레딩
이 예에서는 data.bin 파일을 사용하여 7z 아카이브를 생성하는 방법을 보여줍니다. 우리는 데이터를 효율적으로 압축하기 위해 4개의 스트림이 있는 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")
이 코드는 Bzip2, Lzip 또는 XZ에 대한 설정 대신 SevenZipLZMA2CompressionSettings를 사용하고 압축을 위한 4개의 스레드가 있는 LZMA2 압축 알고리즘을 사용하여 data.bin 파일에서 데이터를 읽어 7z 아카이브를 생성합니다. set_source 메소드 대신 SevenZipArchive의 create_entry 메소드를 사용합니다.
병렬 압축으로 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를 사용하여 병렬 인메모리 압축 구성
- 일반 저장 설정에 ArchiveSaveOptions 사용
- create_entries 메소드를 사용하여 파일 추가 ~/Data 디렉터리를 아카이브에 추가합니다.
Python.Net API 기능에 대해 지원되는 기타 Aspose.ZIP
Python.Net의 Aspose.ZIP 라이브러리를 사용하면 ZIP 파일 문서와 관련된 다양한 작업을 원활하게 처리할 수 있습니다. 형식 변환, 파일 병합, 콘텐츠 편집 또는 데이터 추출이 필요한 경우 Aspose.ZIP은 작업 흐름을 간소화하고 생산성을 향상시키는 포괄적인 기능을 제공합니다.