python zip压缩文件夹不改变原有结构
时间: 2024-09-10 10:30:26 浏览: 104
在Python中,`zip`函数主要用于将多个可迭代的对象(如列表、元组等)打包成一个新的迭代器,但本身并不支持直接压缩整个文件夹。如果你想要压缩文件夹并保持原有的目录结构,你需要使用外部的库,比如`zipfile`模块。
例如,你可以使用以下代码来创建一个名为`archive.zip`的压缩文件,并包含指定文件夹及其内容:
```python
import os
import zipfile
def compress_folder(folder_path, output_file):
with zipfile.ZipFile(output_file, 'w', zipfile.ZIP_DEFLATED) as zipf:
for root, dirs, files in os.walk(folder_path):
for file in files:
abs_file_path = os.path.join(root, file)
zipf.write(abs_file_path, abs_file_path[len(folder_path)+1:])
# 使用方法
compress_folder('/path/to/source/folder', '/path/to/output/archive.zip')
```
这个脚本会遍历指定文件夹及其所有子文件,然后逐个添加到压缩文件中,文件名保留原始路径信息。记得替换`folder_path`和`output_file`为你实际的文件夹路径和输出文件路径。
阅读全文
相关推荐

















