1、目录结构
- test
- kkk
- kkk-1.xml
- compress.py
2、预期
在test文件夹下生成一个kkk.zip的压缩文件
- test
- kkk
- kkk-1.xml
- compress.py
- kkk.zip
压缩文件里的结构
- kkk
- kkk-1.xml
3、流程
import zipfile
import os
def compressed_file(folder_path, folder_name, file_name):
zip_file_name = f'{folder_name}.zip'
zip_file = zipfile.ZipFile(zip_file_name, 'w', zipfile.ZIP_DEFLATED)
file_path = os.path.join(folder_path, file_name)
archive_path = os.path.join(folder_name, file_name)
zip_file.write(file_path, arcname=archive_path)
zip_file.close()
if __name__ == '__main__':
folder_path = os.path.join(os.path.dirname(__file__), 'kkk')
compressed_file(folder_path, 'kkk', 'kkk-1.xml')
- 构造压缩文件名
- 创建一个
ZipFile
对象,用于写入压缩文件。指定压缩算法为ZIP_DEFLATED
- 构造文件路径
- 构造在压缩文件中的存档路径( 压缩文件里的结构 )
- 使用
write
方法将 XML 文件添加到压缩文件中 - 关闭
ZipFile
对象,完成压缩操作。
5、解压缩
5.1 通过socket接收的字节流
import zipfile
with zipfile.ZipFile(io.BytesIO(bytes(content)), 'r') as zip_file:
zip_file.extractall('test')
- 解压缩到
test
文件夹 io.BytesIO(bytes(content))
:用过socket接收到的文件字节流
5.2 指定压缩文件
import zipfile
with zipfile.ZipFile('example.zip', 'r') as zip_file:
zip_file.extractall('test')
评论列表,共 0 条评论
暂无评论