大家在网络上应该经常会去下载或者传输一些zip、rar等格式的压缩文件,而这些压缩文件之中保存的可能是单个文件,也有可能是不同的文件夹。那么小编本文要来给大家讲解的内容就是,python批量压缩文件夹的方法教程,感兴趣的话就一起往下看看吧。

python实现不同文件夹下的函数 python 多个文件调用_python

1.将zipfile模块以及os模块都给导入进来,导入进来之后定义一个只有单个参数的函数,这个参数所需要的值就是文件夹路径,示例如下:

import zipfile
import os
def zip_yasuo(start_dir):

2.在函数内定义一个变量并赋值文件路径和后缀名zip来表示压缩文件,再调用if条件判断一下该文件路径是否不是文件,也就是不存在压缩文件才继续往下执行。所以下一步的代码就是调用zipfile()方法来将其给压缩起来,示例如下所示:

file_news = start_dir + '.zip'
if not os.path.isfile(file_news):
  z = zipfile.ZipFile(file_news, 'w', zipfile.ZIP_DEFLATED)

3.调用walk方法将文件路径下面所有的文件夹以及文件都给找出来并且使用for循环迭代,遍历的过程之中需要得到文件夹的文件路径并处理,也就是将里面的空格给去除掉,示例如下:

for dir_path, dir_names, file_names in os.walk(start_dir):
  file_path = dir_path.replace(start_dir, '')
  file_path = file_path and file_path + os.sep or ''

4.之后还是使用for循环迭代,不过这次迭代的对象是包含了文件目录下所有文件夹及其名称的对象,调用write()方法将其写入到文件压缩对象中实现压缩处理,代码如下:

for filename in file_names:
  z.write(os.path.join(dir_path, filename), file_path+filename)
z.close()

5.最后只需要调用定义好的函数并且将文件路径作为参数传递进去即可,代码示例如下所示:

if __name__ == "__main__":
  zip_yasuo(r"E:\zip")

以上就是关于“Python怎么批量压缩文件夹?