python 批量解压压缩文件的实例代码


Posted in Python onJune 27, 2019

下面给大家介绍python 批量解压压缩文件的实例代码,代码如下所述;

#/usr/bin/python#coding=utf-8import os,sys 
import zipfile open_path='e:\\data'save_path='e:\\data' os.chdir(open_path)
#转到路径
#首先,通过zipfile模块打开指定位置zip文件
#传入文件名列表,及列表文件所在路径,及存储路径def Decompression(files,file_path,save_path):  
os.getcwd()#当前路径  os.chdir(file_path)#转到路径  
for file_name in files:   
print(file_name)   
r = zipfile.is_zipfile(file_name)#判断是否解压文件   
if r:      
zpfd = zipfile.ZipFile(file_name)#读取压缩文件     
os.chdir(save_path)#转到存储路径      
zpfd.extractall()      
zpfd.close()def files_save(open_path): 
for file_path,sub_dirs,files in os.walk(open_path):#获取所有文件名,路径   
print(file_path,sub_dirs,files)   
Decompression(files,file_path,save_path)files_save(open_path)

在看下一段代码python批量解压

#!/usr/bin/python
# -*- coding: UTF-8 -*-
'''Created on Jun 6, 2019
@author: carson
'''
import os
import re
import zipfile
import StringIO
# 下述三行是为了解决编码问题
import sys
reload(sys)
sys.setdefaultencoding('utf8')
file_path = r'/Users/qcq/Downloads/bills'
file_out = r'/Users/qcq/Downloads/qcq.txt'
# 正则表达式匹配基本话费,信息费,长途费,三个条目。
pattern = re.compile(r'\d+\.\d+')
phone_number_line = 1 #标记文件的第一行是电话号码行
real_bill_line = 7 # 正文开始
'''
1. 代码第一部分,首先迭代给定的文件目录,取得需要处理的zip文件,存储在一个列表里面,为后边的文件处理服务。此处主要是使用os.walk来迭代目录,然后使用os.path.join连接两个目录。
'''
file_name_list = []
for dirpath, dirnames, filenames in os.walk(file_path):
  for file_name in filenames:
    if file_name.endswith('.zip'):
      temp_path = os.path.join(dirpath, file_name)
      file_name_list.append(temp_path)
'''
2. 对获取到的上述文件,进行了排序使输出的顺序有序。
'''      
sorted(file_name_list)
'''
3. 正文部分
'''
with open(file_out, 'w') as f_out:
  for zip_file in file_name_list:
    with zipfile.ZipFile(zip_file) as f:
      data = {}
      for nameOfFileUnderZip in f.namelist():
        count = 1
        contents = StringIO.StringIO(f.read(nameOfFileUnderZip))
        sum_all = 0.0
        for line in contents:
          if count > phone_number_line and count < real_bill_line:
            count += 1
            continue
          if phone_number_line == count:
            phone_number = line.split(u':')[1]
            count += 1
            continue
          sum_all += sum(map(float, pattern.findall(line)))
        data[phone_number.strip()]=sum_all
      f_out.write(zip_file + '\n')
      for key, value in sorted(data.items(), key=lambda d:d[0]) :
        f_out.write(key + ':' + str(value) + '\n')

##############################################################################
#coding=utf-8
#甄码农python代码
#使用zipfile做目录压缩,解压缩功能
import os,os.path
import zipfile
def zip_dir(dirname,zipfilename):
  filelist = []
  if os.path.isfile(dirname):
    filelist.append(dirname)
  else :
    for root, dirs, files in os.walk(dirname):
      for name in files:
        filelist.append(os.path.join(root, name))
  zf = zipfile.ZipFile(zipfilename, "w", zipfile.zlib.DEFLATED)
  for tar in filelist:
    arcname = tar[len(dirname):]
    #print arcname
    zf.write(tar,arcname)
  zf.close()
def unzip_file(zipfilename, unziptodir):
  if not os.path.exists(unziptodir): os.mkdir(unziptodir, 0777)
  zfobj = zipfile.ZipFile(zipfilename)
  for name in zfobj.namelist():
    name = name.replace('\\','/')
    if name.endswith('/'):
      os.mkdir(os.path.join(unziptodir, name))
    else:      
      ext_filename = os.path.join(unziptodir, name)
      ext_dir= os.path.dirname(ext_filename)
      if not os.path.exists(ext_dir) : os.mkdir(ext_dir,0777)
      outfile = open(ext_filename, 'wb')
      outfile.write(zfobj.read(name))
      outfile.close()
if __name__ == '__main__':
  zip_dir(r'E:/python/learning',r'E:/python/learning/zip.zip')
  unzip_file(r'E:/python/learning/zip.zip',r'E:/python/learning2')

总结

以上所述是小编给大家介绍的python 批量解压压缩文件的实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
python基于windows平台锁定键盘输入的方法
Mar 05 Python
利用Python爬取可用的代理IP
Aug 18 Python
python解决Fedora解压zip时中文乱码的方法
Sep 18 Python
python 读入多行数据的实例
Apr 19 Python
python实现机器学习之元线性回归
Sep 06 Python
python pygame实现2048游戏
Nov 20 Python
python-opencv 将连续图片写成视频格式的方法
Jan 08 Python
python实现大文件分割与合并
Jul 22 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
阿里云ECS服务器部署django的方法
Aug 29 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
Python代码注释规范代码实例解析
Aug 14 Python
python opencv 图像拼接的实现方法
Jun 27 #Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
Jun 27 #Python
Pandas中Series和DataFrame的索引实现
Jun 27 #Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 #Python
PyTorch的深度学习入门教程之构建神经网络
Jun 27 #Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 #Python
解决pycharm remote deployment 配置的问题
Jun 27 #Python
You might like
php 将excel导入mysql
2009/11/09 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
JS装饰器函数用法总结
2018/04/21 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
vue移动端屏幕适配详解
2019/04/30 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
python3图片转换二进制存入mysql
2013/12/06 Python
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
python生成excel的实例代码
2017/11/08 Python
基于DataFrame改变列类型的方法
2018/07/25 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
python实现指定ip端口扫描方式
2019/12/17 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
python 实现list或string按指定分段
2019/12/25 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
css3闪亮进度条效果实现思路及代码
2013/04/17 HTML / CSS
性能服装:HYLETE
2018/08/14 全球购物
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
结构和类有什么异同
2012/07/16 面试题
大学生入党自我鉴定
2013/10/31 职场文书
如何客观的进行自我评价
2013/12/17 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
学生会主席演讲稿
2014/04/25 职场文书
运动会入场口号
2014/06/07 职场文书
师范毕业生求职信
2014/07/11 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书