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实现扫描指定目录下的子目录及文件的方法
Jul 16 Python
Python深入学习之特殊方法与多范式
Aug 31 Python
python将ip地址转换成整数的方法
Mar 17 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
Oct 18 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
Python进阶学习之特殊方法实例详析
Dec 01 Python
使用numpy和PIL进行简单的图像处理方法
Jul 02 Python
Python函数参数操作详解
Aug 03 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
用python实现刷点击率的示例代码
Feb 21 Python
python点击鼠标获取坐标(Graphics)
Aug 10 Python
Python爬虫爬取有道实现翻译功能
Nov 27 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面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
Prototype使用指南之form.js
2007/01/10 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
jquery实现动态画圆
2014/12/04 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
学习Vue组件实例
2018/04/28 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
Python 的描述符 descriptor详解
2016/02/27 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
python 并发下载器实现方法示例
2019/11/22 Python
PyCharm第一次安装及使用教程
2020/01/08 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
CNC数控操作工岗位职责
2013/11/19 职场文书
法学个人求职信范文
2014/01/27 职场文书
药品采购员岗位职责
2014/02/08 职场文书
珍惜资源的建议书
2014/08/26 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
向女朋友道歉的话
2015/01/20 职场文书
自我评价优缺点范文
2015/03/11 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫