在实际的业务开发中会经常遇到对文件进行相关的操作,比如新建文件夹或文件,移动、删除文件夹或文件,文件的压缩与解压缩等等!!下面就其中的压缩与解压缩进行代码演示!
文件解压缩
import os
import glob
import zipfile
def unzip_file(dir_path):
# 解压缩后文件的存放路径
unzip_file_path = r"C:\Users\Desktop\新建文件夹"
# 找到压缩文件夹
dir_list = glob.glob(dir_path)
if dir_list:
# 循环zip文件夹
for dir_zip in dir_list:
# 以读的方式打开
with zipfile.ZipFile(dir_zip, 'r') as f:
for file in f.namelist():
f.extract(file, path=unzip_file_path)
os.remove(dir_zip)
unzip_file(r"C:\Users\Desktop\新建文件夹\*.zip")
# 这儿的 dir_path 只是其中的一种路径处理方式,可以根据自己的需求行进实际操作
文件压缩
只压缩目标目录下的文件夹(空文件夹不压缩)及文件
import os
import zipfile
def zip_dir(dir_path, zip_path):
'''
:param dir_path: 目标文件夹路径
:param zip_path: 压缩后的文件夹路径
:return:
'''
zip = zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED)
for root, dirnames, filenames in os.walk(dir_path):
file_path = root.replace(dir_path, '') # 去掉根路径,只对目标文件夹下的文件及文件夹进行压缩
# 循环出一个个文件名
for filename in filenames:
zip.write(os.path.join(root, filename), os.path.join(file_path, filename))
zip.close()
zip_dir(r"C:\Users\Desktop\新建文件夹", r"C:\Users\Desktop\压缩" + '.zip')