背景及思路:
一批文件夹需要分别压缩,循环遍历路径下所有文件夹,然后进行压缩
主要代码:
遍历文件夹方法
def traverse_files(path):
file_path_list=[]
for root, dirs, files in os.walk(path):
for dir in dirs:
file_path = os.path.join(root, dir)
#zip_path(file_path)
file_path_list.append(file_path)
return file_path_list
压缩文件夹方法
def zip_path(path):
out_file=path+'.zip'
with zipfile.ZipFile(out_file,'w',zipfile.ZIP_DEFLATED) as zipf:
for root,dirs,files in os.walk(path):
for file in files:
file_path=os.path.join(root,file)
zipf.write(file_path,os.path.relpath(file_path,path))
shutil.rmtree(path)
#删除压缩前的文件夹
主方法
if __name__=='__main__':
# 调用函数来遍历指定路径下的所有文件夹
x=traverse_files('C:\\Users\\86185\\Documents\\py_down_pic')
print(len(x))