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中使用Mako模版库的简单教程
Apr 08 Python
Python实现定时任务
Feb 08 Python
Python基于csv模块实现读取与写入csv数据的方法
Jan 18 Python
Python爬虫框架Scrapy实例代码
Mar 04 Python
Python 编码规范(Google Python Style Guide)
May 05 Python
python和opencv实现抠图
Jul 18 Python
Python sorted对list和dict排序
Jun 09 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 Python
python Xpath语法的使用
Nov 26 Python
Pandas加速代码之避免使用for循环
May 30 Python
利用Python读取微信朋友圈的多种方法总结
Aug 23 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
php记录日志的实现代码
2011/08/08 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
代码生成器 document.write()
2007/04/15 Javascript
JS array 数组详解
2009/03/22 Javascript
javascript appendChild,innerHTML,join性能比较代码
2009/08/29 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
js实现倒计时(距离结束还有)示例代码
2013/07/24 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
2016/01/04 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
详解jQuery中的事件
2016/12/14 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
深入了解Django View(视图系统)
2019/07/23 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
如何执行一个shell程序
2012/11/23 面试题
电大毕业个人生自我鉴定
2014/03/26 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
Python基础知识之变量的详解
2021/04/14 Python
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL