有N包zip文件,现在需要将其中每50包合并压缩为一个zip文件,压缩后的文件从1开始命名,保存在原文件夹位置
时间: 2023-05-14 14:07:28 浏览: 73
可以使用Python的zipfile模块来实现这个功能。首先,需要遍历文件夹中的所有zip文件,然后将它们按照一定的规则合并压缩。
以下是一个可能的实现方式:
```python
import os
import zipfile
# 定义文件夹路径和每个压缩包中的文件数量
folder_path = "/path/to/folder"
files_per_zip = 50
# 获取文件夹中所有zip文件的路径
zip_files = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith(".zip")]
# 按照规则合并压缩
for i in range(0, len(zip_files), files_per_zip):
# 创建新的压缩包文件名
new_zip_name = os.path.join(folder_path, f"{i//files_per_zip+1}.zip")
# 打开新的压缩包
with zipfile.ZipFile(new_zip_name, "w") as new_zip:
# 将指定数量的文件添加到新的压缩包中
for f in zip_files[i:i+files_per_zip]:
with zipfile.ZipFile(f, "r") as old_zip:
for name in old_zip.namelist():
new_zip.writestr(name, old_zip.read(name))
# 删除原始的zip文件
for f in zip_files[i:i+files_per_zip]:
os.remove(f)
```
这段代码会将文件夹中的所有zip文件按照每50个文件合并压缩为一个新的zip文件,并将原始的zip文件删除。新的zip文件以数字命名,从1开始递增。