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程序与C++程序的联合使用
Apr 07 Python
实例说明Python中比较运算符的使用
May 13 Python
全面解析Python的While循环语句的使用方法
Oct 13 Python
解决pycharm运行出错,代码正确结果不显示的问题
Nov 30 Python
python 计算数据偏差和峰度的方法
Jun 29 Python
Python用字典构建多级菜单功能
Jul 11 Python
简单易懂Pytorch实战实例VGG深度网络
Aug 27 Python
python实现单张图像拼接与批量图片拼接
Mar 23 Python
Django模板标签{% for %}循环,获取制定条数据实例
May 14 Python
Python机器学习之逻辑回归
May 11 Python
Django实现聊天机器人
May 31 Python
Django路由层如何获取正确的url
Jul 15 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 和 MySQL 基础教程(一)
2006/10/09 PHP
我的论坛源代码(五)
2006/10/09 PHP
删除数组元素实用的PHP数组函数
2008/08/18 PHP
php的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
js 操作符汇总
2014/11/08 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
python运行时间的几种方法
2016/06/17 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
C#面试题问题集
2016/04/02 面试题
我的长生果教学反思
2014/04/28 职场文书
小学教师师德承诺书
2014/05/23 职场文书
学校标语大全
2014/06/19 职场文书
销售竞赛活动方案
2014/08/23 职场文书
2015年见习期工作总结
2014/12/12 职场文书
社会实践单位意见
2015/06/05 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
python3.7.2 tkinter entry框限定输入数字的操作
2021/05/22 Python
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python