| 
 
	积分3625贡献 精华在线时间 小时注册时间2014-10-21最后登录1970-1-1 
 | 
 
| 
平时司空见惯的压缩与解压缩过程,原理还挺深涩的。
x
登录后查看更多精彩内容~您需要 登录 才可以下载或查看,没有帐号?立即注册 
  网上的教程乱七八糟,你抄我,我抄你,容易被带偏。
 今天特地整理一下,力求代码简单实用。
 
 '''
 该脚本对“文件或文件夹”进行“压缩”和“解压缩”,采用zip压缩格式
 
 约定:
 根据大家的使用习惯,对“文件或文件夹”压缩后的压缩包,都保存在“文件或文件夹”的同级目录下,且名称与“文件或文件夹”同名。
 例如,
 压缩“D:\待压缩文件夹”,就会生成“D:\待压缩文件夹.zip”
 压缩“D:\待压缩文件.xlsx”,就会生成“D:\待压缩文件.zip”
 
 解压时,把zip文件解压到同级同名文件夹内
 例如“D:\待解压文件.zip”解压到文件夹“D:\待解压文件”
 '''
 import os
 import shutil
 import zipfile
 
 # 压缩文件或文件夹:
 # x是要压缩的文件或文件夹
 def ZIP(x):
 # 判断是文件还是文件夹:
 if os.path.isfile(x):
 print('待压缩对象是一个文件')
 # 如何确定压缩包的名称?--将x按‘.’分割,将最后一个元素用“zip”替换,再拼回去
 cut=x.split('.') ; cut[-1]='zip' ; x2='.'.join(cut)
 # 开始压缩:
 z=zipfile.ZipFile(x2,'w')
 z.write(x,os.path.basename(x))
 z.close()
 
 if os.path.isdir(x):
 print('待压缩对象是一个文件夹')
 # 开始压缩:
 shutil.make_archive(x,'zip',root_dir=x,base_dir='./')
 print('****压缩成功****')
 
 # 解压zip文件x
 def UNZIP(x):
 # 解压到的目录,只需要从x截掉最后4个字符即可,吼吼:
 z = zipfile.ZipFile(x,'r')
 z.extractall(path=x[0:-4])
 z.close()
 print('****解压成功****')
 # 解压缩的问题:
 # 用7z软件压缩的zip文件,解压后出现中文乱码,
 # 用本脚本程序压缩的zip文件,解压后没有中文乱码。
 
 # 测试部分:
 if __name__=="__main__":
 # x=r'C:\Users\xiumu\desktop\空气站数据\数据.xlsx'
 x=r'C:\Users\xiumu\desktop\空气站数据'
 ZIP(x)
 x=r'C:\Users\xiumu\desktop\空气站数据.zip'
 UNZIP(x)
 
 
 
 
 
 
 
 | 
 |