Python压缩、减压7z文件
生活随笔
收集整理的這篇文章主要介紹了
Python压缩、减压7z文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python壓縮、減壓7z文件
- py7zr簡介
- 安裝
- 解壓文件
- 壓縮、歸檔
py7zr簡介
py7zr 是一個由Python編程語言編寫的7zip存檔壓縮、解壓縮、加密和解密的庫和實用程序。要求的最低版本是Python 3.6。
支持的算法:
- compress
- LZMA2
- LZMA
- Bzip2
- Deflate
- Copy
- ZStandard
- Brotli
- Deflate64 (Decompression only)
- PPMd (Experimental)
- crypt
- 7zAES
- Filters
- Delta
- BCJ(X86,ARMT,ARM,PPC,SPARC,IA64)
安裝
可以直接使用pip進行安裝py7zr:
pip install py7zr或者使用conda:
conda install -c conda-forge py7zr解壓文件
下面是一段代碼片段,介紹如何解壓文檔中的一些文件:
import py7zrarchive = py7zr.SevenZipFile('sample.7z', mode='r') archive.extractall(path="/tmp") archive.close()py7zr (v0.6及更高版本) 也提供了上下文管理,所以可以使用 with 代碼塊:
import py7zrwith py7zr.SevenZipFile('sample.7z', mode='r') as z:z.extractall()with py7zr.SevenZipFile('target.7z', 'w') as z:z.writeall('./base_dir')py7zr 還支持提取單個或通過 extract(targets=[‘file path’]) 選定的多個文件。注意:如果只指定文件而不指定父目錄,將會提取失敗。
import py7zr import refilter_pattern = re.compile(r'<your/target/file_and_directories/regex/expression>') with SevenZipFile('archive.7z', 'r') as archive:allfiles = archive.getnames()selective_files = [f for f in allfiles if filter_pattern.match(f)]archive.extract(targets=selective_files)py7zr(v0.6及更高版本)支持提取受密碼保護的歸檔文件。
import py7zrwith py7zr.SevenZipFile('encrypted.7z', mode='r', password='secret') as z:z.extractall()壓縮、歸檔
下面是一段如何生成歸檔文件的事例代碼。
import py7zrwith py7zr.SevenZipFile('target.7z', 'w') as archive:archive.writeall('/path/to/base_dir', 'base')要創建加密存檔,請傳遞密碼。
import py7zrwith py7zr.SevenZipFile('target.7z', 'w', password='secret') as archive:archive.writeall('/path/to/base_dir', 'base')要使用zstandard等算法創建存檔,可以使用自定義過濾器調用。
import py7zrmy_filters = [{"id": py7zr.FILTER_ZSTD}] another_filters = [{"id": py7zr.FILTER_ARM}, {"id": py7zr.FILTER_LZMA2, "preset": 7}] with py7zr.SevenZipFile('target.7z', 'w', filters=my_filter) as archive:archive.writeall('/path/to/base_dir', 'base')總結
以上是生活随笔為你收集整理的Python压缩、减压7z文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卷二:图形编程MFC第1篇:画笔、画刷、
- 下一篇: linux文件中插入多行技巧