压缩和解压文件
需要的库:zipfile
要创建你自己的压缩 ZIP 文件,必须以“写模式”打开 ZipFile 对象,即传入'w' 作为第二个参数(这类似于向 open()函数传入'w',以写模式打开一个文本文件)。
如果向 ZipFile 对象的 write()方法传入一个路径,Python 就会压缩该路径所指 的文件,将它加到 ZIP 文件中。write()方法的第一个参数是一个字符串,代表要添 加的文件名。第二个参数是“压缩类型”参数,它告诉计算机使用怎样的算法来压 缩文件。可以总是将这个值设置为 zipfile.ZIP_DEFLATED(这指定了 deflate 压缩 算法,它对各种类型的数据都很有效)。
import os
import zipfile
def zip_compress(zip_file, file_deep):
z = zipfile.ZipFile(zip_file, 'w', zipfile.ZIP_DEFLATED)
for file_path in file_deep:
# print(file_path)
for dirpath, dirnames, filenames in os.walk(file_path):
# deeps压缩深度2代表2层目录,1代表1层目录
deeps = file_deep.get(file_path)
split_file = '\\'.join(dirpath.split('\\')[-deeps:])
# print(split_file)
for fil in filenames:
file_full_path = os.path.join(dirpath, fil)
compress_file = os.path.join(split_file, fil)
# print(compress_file)
# file_full_path是文件的全路径,compress_file是需要压缩后展现的文件名,
z.write(file_full_path, compress_file)
z.close()
print("压缩成功至→%s" % zip_file)
final_daily_reporting_path = r"C:\Users\Administrator\Desktop\新版银行流水\每日资金报备分析\每日资金报备分析2021年10月16日"
two_day_file = r"C:\Users\Administrator\Desktop\新版银行流水\对账单-按日\对账单-按日2021年10月16日"
fianl_day_liu_dui_path = "C:\\Users\\Administrator\\Desktop\\新版银行流水\\对账单-统一格式-按日\\2021年10月16日\\"
# path = r"C:\Users\Administrator\Desktop\新版银行流水\对账单-统一格式-按小时\2021年9月1日_17时"
# path2 = r"C:\Users\Administrator\Desktop\新版银行流水\对账单-按小时\2021年9月1日_17时"
zip_path = 'F:\\新建文件夹\\zipfile.zip'
zip_compress(zip_path, file_deep={final_daily_reporting_path: 2, two_day_file: 3, fianl_day_liu_dui_path: 3})
ZipFile 对象的 extractall()方法从 ZIP 文件中解压缩所有文件和文件夹,放到当 前工作目录中。
import zipfile
zip_file = zipfile.ZipFile('zfile.zip')
# 解压
zip_extract = zip_file.extractall()
zip_extract.close()
本文作者: 永生
本文链接: https://yys.zone/detail/?id=231
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
发表评论
评论列表 (0 条评论)
暂无评论,快来抢沙发吧!