python如何压缩指定文件夹,只需要压缩最后一级文件夹
时间: 2024-05-02 16:21:13 浏览: 52
可以使用Python的zipfile模块来压缩指定文件夹。以下是一个示例代码:
```python
import os
import zipfile
def zip_last_level_folder(folder_path, zip_path):
# 获取最后一级文件夹的路径和名称
last_level_folder_path = os.path.dirname(folder_path)
last_level_folder_name = os.path.basename(folder_path)
# 创建压缩文件
with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zip_file:
# 遍历最后一级文件夹下的所有文件和子文件夹
for root, dirs, files in os.walk(folder_path):
for file in files:
# 将文件添加到压缩文件中
zip_file.write(os.path.join(root, file), os.path.relpath(os.path.join(root, file), last_level_folder_path))
for dir in dirs:
# 如果子文件夹是最后一级文件夹,则将其添加到压缩文件中
if os.path.abspath(os.path.join(root, dir)) == folder_path:
zip_file.write(os.path.join(root, dir), os.path.relpath(os.path.join(root, dir), last_level_folder_path))
print('压缩完成!')
# 示例用法:
zip_last_level_folder('/path/to/folder', '/path/to/zipfile.zip')
```
在示例代码中,`zip_last_level_folder`函数接受两个参数:要压缩的文件夹路径和压缩文件的保存路径。函数首先获取最后一级文件夹的路径和名称,然后使用`zipfile`模块创建一个压缩文件,并遍历最后一级文件夹下的所有文件和子文件夹。对于每个文件,函数将其添加到压缩文件中,并使用`os.path.relpath`函数获取文件相对于最后一级文件夹的相对路径。对于每个子文件夹,如果它是最后一级文件夹,则将其添加到压缩文件中。最后输出压缩完成的消息。
阅读全文