python 压缩文件夹为zip
时间: 2023-09-27 08:08:17 浏览: 121
要使用Python内置的zipfile模块来压缩文件夹为zip文件。以下是一个简单的示例代码:
```python
import zipfile
import os
# 定义要压缩的文件夹路径和zip文件名
folder_path = 'path/to/folder'
zip_file_name = 'compressed.zip'
# 创建zip文件
zip_file = zipfile.ZipFile(zip_file_name, 'w', zipfile.ZIP_DEFLATED)
# 遍历文件夹,将文件逐一添加到zip文件中
for root, dirs, files in os.walk(folder_path):
for file in files:
zip_file.write(os.path.join(root, file))
# 关闭zip文件
zip_file.close()
```
在代码中,首先我们导入了Python内置的zipfile模块。接着,我们定义了要压缩的文件夹路径和zip文件名。
然后,我们创建了一个zip文件对象,并指定了压缩方法为ZIP_DEFLATED,即使用deflate压缩算法进行压缩。
接下来,我们使用os.walk函数遍历文件夹,将文件夹中的所有文件逐一添加到zip文件中。
最后,我们关闭了zip文件对象。
这就是用Python压缩文件夹为zip文件的基本过程。
相关问题
python压缩文件夹为zip
可以使用Python内置的zipfile模块进行文件夹压缩,具体代码如下:
```python
import zipfile
import os
def zipdir(path, ziph):
# ziph is zipfile handle
for root, dirs, files in os.walk(path):
for file in files:
ziph.write(os.path.join(root, file))
if __name__ == '__main__':
zipf = zipfile.ZipFile('example.zip', 'w', zipfile.ZIP_DEFLATED)
zipdir('example_dir', zipf)
zipf.close()
```
其中,`path`为要压缩的文件夹路径,`ziph`为zip文件的句柄。
在代码中,使用`os.walk()`函数遍历文件夹中的所有文件和子文件夹,然后使用`ziph.write()`函数将文件写入到zip文件中。
最后,使用`zipf.close()`关闭zip文件。
python压缩文件夹为zip加密码
### 使用Python压缩文件夹为加密的ZIP文件
为了实现带有密码保护的ZIP文件创建功能,`pyminizip`是一个非常合适的选择。此库允许通过简单的API调用来设置压缩文件的安全属性[^1]。
#### 安装依赖库
首先需要安装`pyminizip`库来处理加密操作:
```bash
pip install pyminizip
```
#### 创建加密ZIP文件示例代码
下面是一段用于将指定目录下的所有文件打包并加密码的例子:
```python
import os
import pyminizip
def compress_folder_to_zip_with_password(folder_path, output_filename, password):
"""
将整个文件夹的内容压缩到一个带密码保护的ZIP档案中
:param folder_path: 要被压缩的目标文件夹路径
:param output_filename: 输出的ZIP文件名(含扩展名)
:param password: 设置给ZIP文件的访问密码
"""
# 获取要加入ZIP的所有文件列表
files_list = []
for root, dirs, files in os.walk(folder_path):
for file in files:
full_file_path = os.path.join(root, file)
relative_path = os.path.relpath(full_file_path, folder_path)
files_list.append((full_file_path, relative_path))
compression_level = 5 # 压缩级别范围是从1(最快)至9(最小尺寸)
input_files, zip_filenames = zip(*files_list)
# 执行实际的压缩过程,并应用所提供的密码
pyminizip.compress_multiple(input_files, list(zip_filenames), output_filename, password, compression_level)
if __name__ == "__main__":
source_directory = "./example_dir"
destination_zip = "output.zip"
encryption_key = "your_secure_password"
compress_folder_to_zip_with_password(source_directory, destination_zip, encryption_key)
```
这段脚本遍历了目标文件夹中的每一个项目,构建了一个待压缩项清单,最后利用`pyminizip.compress_multiple()`函数完成了最终的压缩工作,同时设置了相应的安全参数。
阅读全文
相关推荐












