Python 将多层文件夹里面的文件打包为zip压缩包
将file文件夹里面的key文件夹里面的所有内容打包为zip压缩包。
文件夹结构如下:
j@ubuntu:~/Desktop/file$ pwd
/home/j/Desktop/file
j@ubuntu:~/Desktop/file$ tree
.
├── 管理人员.txt
└── key
├── 101房间
│ ├── 房间信息.txt
│ └── 密码.txt
├── 102房间
│ ├── 房间信息.txt
│ └── 密码.txt
└── 103房间
├── 房间信息.txt
└── 密码.txt
4 directories, 7 files
代码
import os
import shutil
import zipfile
# 创建zip压缩包
zip_file = zipfile.ZipFile(
'file/key_zip.zip', 'w', compression=zipfile.ZIP_DEFLATED
)
# 将key文件写入zip压缩包中
for dir_name in os.listdir('file/key/'):
if os.path.isfile(os.path.join('file/key/', dir_name)):
zip_file.write(os.path.join('file/key/', dir_name), dir_name, zipfile.ZIP_STORED)
else:
for file_name in os.listdir(os.path.join('file/key/', dir_name)):
zip_file.write(
os.path.join('file/key/', os.path.join(dir_name, file_name)),
os.path.join(dir_name, file_name),
zipfile.ZIP_STORED
)