python3大文件解压和基本操作


Posted in Python onDecember 15, 2017

先说下:所谓的大文件并不是压缩文件有多大,几十兆的文件而是解压后几百兆。其中就遇到解压不成功的情况.、读小文件时成功,大文件时失败等

def unzip_to_txt_plus(zipfilename):
  zfile = zipfile.ZipFile(zipfilename, 'r')
  for filename in zfile.namelist():
    data = zfile.read(filename)
    # data = data.decode('gbk').encode('utf-8')
    data = data.decode('gbk', 'ignore').encode('utf-8')
    file = open(filename, 'w+b')
    file.write(data)
    file.close()


if __name__ == '__main__':
  zipfilename = "E:\\share\\python_excel\\zip_to_database\\20171025.zip"
  unzip_to_txt_plus(zipfilename)

注意参数:‘ignore' ,因为默认是严格编码,如果不加这个参数就会报错。
因为该函数已经把文件编成utf-8 所以后面读取文件时成功,下面贴出读取大文件代码(忽略数据库相关)

# - coding: utf-8 -
import csv
import linecache
import xlrd
import MySQLdb


def txt_todatabase(filename, linenum):
   # with open(filename, "r", encoding="gbk") as csvfile:
   #   Read = csv.reader(csvfile)
   #   count =0
   #   for i in Read:
   #   #   print(i)
   #      count += 1
   #      # print('hello')
   #   print(count)
   count = linecache.getline(filename, linenum)
   print(count)
   # with open("new20171028.csv", "w", newline="") as datacsv:
   #   # dialect为打开csv文件的方式,默认是excel,delimiter="\t"参数指写入的时候的分隔符
   #   csvwriter = csv.writer(datacsv, dialect=("excel"))
   #   # csv文件插入一行数据,把下面列表中的每一项放入一个单元格(可以用循环插入多行)
   #   csvwriter.writerow(["A", "B", "C", "D"])


def bigtxt_read(filename):
  with open(filename, 'r', encoding='utf-8') as data:
    count =0
    while 1:
      count += 1
      line = data.readline()
      if 1000000 == count:
        print(line)
      if not line:
        break
    print(count)


if __name__ == '__main__':
  filename = '20171025.txt'
  txt_todatabase(filename, 1000000)
  bigtxt_read(filename)

经过对比,发现两个速度基本一样快。两百万行的数据是没压力的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之使用Python查询更新数据库
Nov 25 Python
Python里disconnect UDP套接字的方法
Apr 23 Python
pandas修改DataFrame列名的方法
Apr 08 Python
python网络爬虫学习笔记(1)
Apr 09 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
PyCharm使用Docker镜像搭建Python开发环境
Dec 26 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
Jan 06 Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 Python
Python Opencv图像处理基本操作代码详解
Aug 31 Python
python 如何上传包到pypi
Dec 24 Python
python os.listdir()乱码解决方案
Jan 31 Python
手把手教你用Django执行原生SQL的方法
Feb 18 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
Dec 15 #Python
numpy自动生成数组详解
Dec 15 #Python
Python3实现发送QQ邮件功能(附件)
Dec 23 #Python
numpy排序与集合运算用法示例
Dec 15 #Python
Python3实现发送QQ邮件功能(html)
Dec 15 #Python
Python3实现发送QQ邮件功能(文本)
Dec 15 #Python
numpy数组拼接简单示例
Dec 15 #Python
You might like
2020年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
浅谈PHP接收POST数据方式
2015/06/05 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
Prototype使用指南之range.js
2007/01/10 Javascript
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
理解Javascript_08_函数对象
2010/10/15 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
javascript实现文字无缝滚动效果
2017/08/26 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
微信小程序常用简易小函数总结
2019/02/01 Javascript
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
Python中作用域的深入讲解
2018/12/10 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
Django异步任务线程池实现原理
2019/12/17 Python
django 外键创建注意事项说明
2020/05/20 Python
Python数据可视化图实现过程详解
2020/06/12 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
python调用win32接口进行截图的示例
2020/11/11 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
THE OUTNET美国官网:国际设计师品牌折扣网站
2017/03/07 全球购物
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
毕业自荐书
2013/12/09 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
2014年村委会工作总结
2014/11/24 职场文书
原告离婚代理词
2015/05/23 职场文书
六一儿童节致辞
2015/07/31 职场文书
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS