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实现的二叉树算法和kmp算法实例
Apr 25 Python
python应用程序在windows下不出现cmd窗口的办法
May 29 Python
python实现比较两段文本不同之处的方法
May 30 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
Python中第三方库Requests库的高级用法详解
Mar 12 Python
python opencv实现旋转矩形框裁减功能
Jul 25 Python
Django组件之cookie与session的使用方法
Jan 10 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
python 解决flask 图片在线浏览或者直接下载的问题
Jan 09 Python
python线程池 ThreadPoolExecutor 的用法示例
Oct 10 Python
python中altair可视化库实例用法
Jan 26 Python
解决pytorch读取自制数据集出现过的问题
May 31 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
php mssql 时间格式问题
2009/01/13 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
YII2.0之Activeform表单组件用法实例
2016/01/09 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
jQuery调用WebService的实现代码
2011/06/19 Javascript
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
用console.table()调试javascript
2014/09/04 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
Python中static相关知识小结
2018/01/02 Python
django中静态文件配置static的方法
2018/05/20 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
公司离职证明范本
2014/01/13 职场文书
就业表自我评价分享
2014/02/06 职场文书
美容院营销方案
2014/03/05 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
秋季运动会开幕词
2015/01/28 职场文书
员工旷工检讨书
2015/08/15 职场文书
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL