首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Python中压缩文件夹及其所有文件,同时保留文件夹名称和内容的相对路径?

在Python中,可以使用zipfile模块来压缩文件夹及其所有文件,并保留文件夹名称和内容的相对路径。下面是一个示例代码:

代码语言:python
代码运行次数:0
复制
import os
import zipfile

def zip_folder(folder_path, output_path):
    with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                file_path = os.path.join(root, file)
                relative_path = os.path.relpath(file_path, folder_path)
                zipf.write(file_path, arcname=relative_path)

# 示例用法
folder_path = '/path/to/folder'  # 要压缩的文件夹路径
output_path = '/path/to/output.zip'  # 压缩文件的输出路径
zip_folder(folder_path, output_path)

上述代码中,zip_folder函数接受两个参数:folder_path表示要压缩的文件夹路径,output_path表示压缩文件的输出路径。函数内部使用zipfile.ZipFile创建一个Zip文件对象,并通过os.walk遍历文件夹中的所有文件和子文件夹。对于每个文件,使用os.path.join获取其完整路径,然后使用os.path.relpath获取相对路径。最后,使用zipf.write将文件写入Zip文件中,arcname参数指定了文件在Zip文件中的相对路径。

这样,执行zip_folder函数后,即可将文件夹及其所有文件压缩为一个Zip文件,并保留了文件夹名称和内容的相对路径。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):提供高可用、高可靠、低成本的对象存储服务,适用于存储和处理任意类型的文件数据。详情请参考:腾讯云对象存储(COS)
  • 腾讯云函数计算(SCF):无服务器的事件驱动型计算服务,支持多种语言编写函数,可用于处理压缩文件等任务。详情请参考:腾讯云函数计算(SCF)
  • 腾讯云云服务器(CVM):提供弹性、安全、稳定的云服务器,可用于运行Python代码。详情请参考:腾讯云云服务器(CVM)
  • 腾讯云云开发(CloudBase):提供一站式云端研发平台,支持前后端一体化开发,可用于构建Python应用。详情请参考:腾讯云云开发(CloudBase)
  • 腾讯云容器服务(TKE):提供高度可扩展的容器化应用管理平台,可用于部署和管理Python应用。详情请参考:腾讯云容器服务(TKE)

请注意,以上仅为示例推荐的腾讯云产品,并非对其他云计算品牌商的评价或比较。

相关搜索:压缩文件夹及其所有内容,但不保留Python中的目录结构如何在Python 3中导入文件夹中的文件及其内容使用python和tar压缩文件夹中特定类型的所有文件Powershell查找给定文件夹名称中的所有空文件夹和子文件夹如何在cpanel中获取文件夹内所有文件夹名称的列表?如何获取根文件夹中的所有子文件夹名称并创建HTML内容?Python;读取和写入文件夹中的所有文件获取除python中的一个文件夹以外的所有文件夹名称Python:递归统计文件夹和子文件夹中的所有文件类型和大小将文件夹和子文件夹中的所有rar文件解压缩到同一文件夹中选择文件夹中的特定文件及其名称,然后对其进行操作(Python)如何在python中删除路径中的所有文件夹如何删除文件夹及其子文件夹中的所有文件,在Windows 7中只删除一个特定名称的文件将文件夹中的所有文件名更改为其他Python名称如何在Laravel中删除不在storage/app下的文件夹(及其内容)?如何在python中以dataframe格式同时打开位于不同子文件夹中的多个压缩excel文件(.gz文件)?如何在python http.server中同时提供文件夹和处理POST请求将文件夹中的所有文件替换为1个文件,但在Gulp中保留其原始名称如何在Outlook 2016 for Mac中使用ID和名称迭代所有帐户中的所有邮件文件夹如何使用python和os合并特定文件夹中的所有csv文件
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券