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格式化字符串实例总结
Sep 28 Python
用map函数来完成Python并行任务的简单示例
Apr 02 Python
python绘图方法实例入门
May 19 Python
举例讲解Python中的迭代器、生成器与列表解析用法
Mar 20 Python
Python实现将一个正整数分解质因数的方法分析
Dec 14 Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 Python
python画折线图的程序
Jul 26 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 Python
python字符串切割:str.split()与re.split()的对比分析
Jul 16 Python
Python中的Cookie模块如何使用
Jun 04 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
初识ThinkPHP控制器
2016/04/07 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
PHP7多线程搭建教程
2017/04/21 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
JavaScript 获取事件对象的注意点
2009/07/29 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
Bootstrap和Java分页实例第二篇
2016/12/23 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
Python输出带颜色的字符串实例
2017/10/10 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
2020/04/01 Python
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
市场部专员岗位职责
2013/11/30 职场文书
旅游管理专业个人求职信范文
2013/12/24 职场文书
商业房地产广告语
2014/03/13 职场文书
节水倡议书范文
2014/04/15 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
pandas取dataframe特定行列的实现方法
2021/05/24 Python
MySQL常见优化方案汇总
2022/01/18 MySQL
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL