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实现周期性抓取网页内容的方法
Nov 04 Python
详解python进行mp3格式判断
Dec 23 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
May 24 Python
详解python 拆包可迭代数据如tuple, list
Dec 29 Python
python脚本监控Tomcat服务器的方法
Jul 06 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
numpy数组广播的机制
Jul 12 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
python统计字符串中字母出现次数代码实例
Mar 02 Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
Sep 11 Python
简单了解Python字典copy与赋值的区别
Sep 16 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
多文件上传的例子
2006/10/09 PHP
php4的彩蛋
2006/10/09 PHP
php过滤危险html代码
2008/08/18 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
表单提交验证类
2006/07/14 Javascript
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
Prototype中dom对象方法汇总
2008/09/17 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
通过JavaScript下载文件到本地的方法(单文件)
2019/03/17 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
vue 实现购物车总价计算
2019/11/06 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
python操作MySQL数据库具体方法
2013/10/28 Python
python网络编程示例(客户端与服务端)
2014/04/24 Python
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
Python生成器定义与简单用法实例分析
2018/04/30 Python
详解Python如何生成词云的方法
2018/06/01 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
python办公自动化之excel的操作
2021/05/23 Python
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS