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之网站的结构
Oct 24 Python
简单介绍Python中的struct模块
Apr 28 Python
Python实现压缩和解压缩ZIP文件的方法分析
Sep 28 Python
用Python进行简单图像识别(验证码)
Jan 19 Python
python正则实现提取电话功能
Feb 24 Python
Python实现的远程登录windows系统功能示例
Jun 21 Python
Python 控制终端输出文字的实例
Jul 12 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
Sep 06 Python
python的json中方法及jsonpath模块用法分析
Dec 06 Python
Python configparser模块配置文件过程解析
Mar 03 Python
python中wheel的用法整理
Jun 15 Python
Python实现列表索引批量删除的5种方法
Nov 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
PHP脚本的10个技巧(3)
2006/10/09 PHP
PHP 和 XML: 使用expat函数(一)
2006/10/09 PHP
比较好用的PHP防注入漏洞过滤函数代码
2012/04/11 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
探讨php define()函数及defined()函数使用详解
2013/06/09 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
jquery validation插件表单验证的一个例子
2010/03/03 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
javascript进行数组追加方法小结
2014/06/16 Javascript
javaScript中Math()函数注意事项
2015/06/18 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
jquery ajaxfileupload异步上传插件使用详解
2017/02/08 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
Python删除空文件和空文件夹的方法
2015/07/14 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
详解anaconda安装步骤
2020/11/23 Python
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
高中生自我评价个人范文
2013/11/09 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
社会实践活动总结报告
2014/04/29 职场文书
养牛场项目建议书
2014/05/13 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
七个Python必备的GUI库
2021/04/27 Python
k-means & DBSCAN 总结
2021/04/27 Python
Python 文字识别
2022/05/11 Python