Python 压缩文件夹
Python 压缩文件夹
生成测试文件夹
可以先使用该脚本生成测试文件夹,也可以直接用自己的文件夹
import os
import shutil
def main():
shutil.rmtree('AAA')
os.makedirs("AAA")
os.makedirs("AAA/BBB")
os.makedirs("AAA/BBB/EEE")
os.makedirs("AAA/BBB/FFF")
os.makedirs("AAA/CCC")
os.makedirs("AAA/CCC/GGG")
os.makedirs("AAA/CCC/GGG/WWW")
os.makedirs("AAA/CCC/HHH")
with open('AAA/AAA1.txt', 'w') as f:
f.write('txt_file_content')
with open('AAA/AAA2.txt', 'w') as f:
f.write('txt_file_content')
with open('AAA/BBB/BBB1.txt', 'w') as f:
f.write('txt_file_content')
with open('AAA/BBB/BBB2.txt', 'w') as f:
f.write('txt_file_content')
with open('AAA/CCC/CCC1.txt', 'w') as f:
f.write('txt_file_content')
with open('AAA/BBB/EEE/EEE1.txt', 'w') as f:
f.write('txt_file_content')
with open('AAA/BBB/FFF/FFF1.txt', 'w') as f:
f.write('txt_file_content')
with open('AAA/CCC/HHH/HHH1.txt', 'w') as f:
f.write('txt_file_content')
if __name__ == '__main__':
main()
压缩文件夹
可以传递绝对路径和相对路径
测试环境是windows和python3.6
import os.path
import zipfile
def zip_dir(dir_path: str, save_path: str):
dir_path = os.path.abspath(dir_path)
save_path = os.path.abspath(save_path)
if not os.path.exists(os.path.dirname(save_path)):
os.makedirs(os.path.dirname(save_path))
with zipfile.ZipFile(save_path, "w", zipfile.ZIP_DEFLATED) as f:
for path, dir_names, filenames in os.walk(dir_path):
# print(f'path:{path}')
# print(f'dir_nams:{dir_names}')
# print(f'filenames:{filenames}')
for dir_name in dir_names:
save_folder = os.path.join(path, dir_name)
# print(f'save_folder:{save_folder}')
save_folder = save_folder.replace(os.path.dirname(dir_path) + os.sep, '')
# print(f'save_folder:{save_folder}')
f.write(save_folder)
for filename in filenames:
save_file = os.path.join(path, filename)
save_file = save_file.replace(os.path.dirname(dir_path) + os.sep, '')
f.write(save_file)
print(f"save to path:{save_path}")
def main():
zip_dir("AAA", 'VV/a.zip')
zip_dir("E:\gitee_code\learn-python\备份数据库和文件夹\AAA", 'b.zip')
if __name__ == '__main__':
main()
运行
测试目录结构
生成出的压缩包
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示