在Python中,可以使用zipfile模块来压缩文件夹及其所有文件,并保留文件夹名称和内容的相对路径。下面是一个示例代码:
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文件,并保留了文件夹名称和内容的相对路径。
腾讯云相关产品和产品介绍链接地址:
请注意,以上仅为示例推荐的腾讯云产品,并非对其他云计算品牌商的评价或比较。
领取专属 10元无门槛券
手把手带您无忧上云