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实现从字典中删除元素的方法
May 04 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
使用python调用zxing库生成二维码图片详解
Jan 10 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
在Python中获取两数相除的商和余数方法
Nov 10 Python
python 如何将数据写入本地txt文本文件的实现方法
Sep 11 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 Python
python如何代码集体右移
Jul 20 Python
python利用platform模块获取系统信息
Oct 09 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
Jun 11 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将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
PHP防CC攻击实现代码
2011/12/29 PHP
php获取用户IPv4或IPv6地址的代码
2012/11/15 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
php登录超时检测功能实例详解
2017/03/21 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
JavaScript入门教程 Cookies
2009/01/31 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
2016/09/02 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
微信小程序动态的加载数据实例代码
2017/04/14 Javascript
cocos creator Touch事件应用(触控选择多个子节点的实例)
2017/09/10 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
layui动态绑定事件的方法
2019/09/20 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
劳动竞赛活动方案
2014/02/20 职场文书
校庆口号
2014/06/20 职场文书
慰问信格式
2015/02/14 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书