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下singleton模式的实现方法
Jul 16 Python
使用Python的PEAK来适配协议的教程
Apr 14 Python
Python倒排索引之查找包含某主题或单词的文件
Nov 13 Python
Python 实现数组相减示例
Dec 27 Python
pytorch实现MNIST手写体识别
Feb 14 Python
浅谈python累加求和+奇偶数求和_break_continue
Feb 25 Python
python读取hdfs并返回dataframe教程
Jun 05 Python
Python通过kerberos安全认证操作kafka方式
Jun 06 Python
Django如何批量创建Model
Sep 01 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
Feb 02 Python
基于Python编写简易版的天天跑酷游戏的示例代码
Mar 23 Python
如何使用python包中的sched事件调度器
Apr 30 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获取网站域名和地址的代码
2008/08/17 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
五段实用的js高级技巧
2011/12/20 Javascript
ajax异步刷新实现更新数据库
2012/12/03 Javascript
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
关于vue-resource报错450的解决方案
2017/07/24 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
Element-ui table中过滤条件变更表格内容的方法
2018/03/02 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
python实现报表自动化详解
2017/11/16 Python
用Python逐行分析文件方法
2019/01/28 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
python 线程的五个状态
2020/09/22 Python
监理员的岗位职责
2013/11/13 职场文书
求职简历中个人的自我评价
2013/12/25 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
中学社团活动总结
2015/05/07 职场文书
音乐会主持人开场白
2015/05/28 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL