Aperçu
Notre bibliothèque permet la compression multi-flux pour certains formats. Cela vous permet d'augmenter considérablement la vitesse de compression des données.Parallélisation des archives BZIP2, LZIP et XZ
Le nombre de threads de compression peut être défini via la propriété « threads de compression » de la classe de paramètres correspondante. La valeur par défaut est 1, et la compression est donc effectuée sur un seul thread. Cependant, si vous définissez une valeur supérieure à un, l’algorithme utilisera le nombre correspondant de cœurs de processeur.
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")
Dans ces exemples, les extraits de code Python effectuent des actions similaires pour créer des archives, ne différant que par les formats de compression utilisés. Ils suivent généralement ces étapes :
- Créez un objet de paramètres spécifique au format d’archive.
- Définissez le nombre de flux de parallélisme pour la compression.
- Un objet d’archive est créé dans le contexte avec, qui garantit la fermeture automatique de l’archive une fois les opérations terminées.
- Spécifiez la source de données à ajouter à l’archive.
- Enregistrez l’archive dans le format approprié en utilisant les paramètres configurés.
Compression LZMA2 et multithreading dans les archives 7Z
Cet exemple montre comment créer une archive 7z à l’aide du fichier data.bin. Nous utilisons l’algorithme de compression LZMA2 avec quatre flux pour compresser efficacement les données.
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")
Ce code crée une archive 7z en lisant les données du fichier data.bin, en utilisant SevenZipLZMA2CompressionSettings au lieu des paramètres de Bzip2, Lzip ou XZ et de l’algorithme de compression LZMA2 avec quatre threads pour la compression. Il utilise la méthode create_entry de SevenZipArchive au lieu de la méthode set_source.
Accélérez l'archivage ZIP avec la compression parallèle
La création d’une archive ZIP peut être parallélisée au niveau d’entrée. Pour ce faire, utilisez l’instance ParallelOptions et ses propriétés
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)
Les principales fonctionnalités sont :
- Utiliser ParallelOptions pour configurer la compression parallèle en mémoire.
- Utiliser ArchiveSaveOptions pour les paramètres de sauvegarde généraux.
- Utiliser la méthode create_entries pour ajouter des fichiers depuis le répertoire ~/Data vers l’archive.
Autres fonctionnalités de l'API Aspose.ZIP pour Python.Net prises en charge
Avec la bibliothèque Aspose.ZIP dans Python.Net, vous pouvez gérer de manière transparente diverses tâches liées aux documents de fichiers ZIP. Que vous ayez besoin de convertir des formats, de fusionner des fichiers, de modifier du contenu ou d'extraire des données, Aspose.ZIP fournit des fonctionnalités complètes pour rationaliser votre flux de travail et améliorer votre productivité.
Support and Learning Resources
- Ressources d'apprentissage
- Documentation
- Code source
- Références API
- Support produit
- Assistance gratuite
- Assistance payante
- Blog
- Notes de version
- Pourquoi Aspose.Zip pour Python.Net ?
- Liste des clients
- Réussites