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之有容乃大的list(4)
Sep 28 Python
Python中的pprint折腾记
Jan 21 Python
Python Socket使用实例
Dec 18 Python
数据清洗--DataFrame中的空值处理方法
Jul 03 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
python pygame实现方向键控制小球
May 17 Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 Python
python实现中文文本分句的例子
Jul 15 Python
django基于restframework的CBV封装详解
Aug 08 Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 Python
python 经纬度求两点距离、三点面积操作
Jun 03 Python
python中%格式表达式实例用法
Jun 18 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
在JavaScript中调用php程序
2009/03/09 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
php实现读取超大文件的方法
2014/07/28 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
让焦点自动跳转
2006/07/01 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
JavaScript数据结构之栈实例用法
2019/01/18 Javascript
Python实现Const详解
2015/01/27 Python
python合并同类型excel表格的方法
2018/04/01 Python
Tensorflow卷积神经网络实例进阶
2018/05/24 Python
Python应用库大全总结
2018/05/30 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
收藏!10个免费高清视频素材网站!【设计、视频剪辑必备】
2021/03/18 杂记
医学生求职自荐信
2013/10/25 职场文书
商务邀请函范文
2014/01/14 职场文书
学生会竞聘书范文
2014/03/31 职场文书
班主任新年寄语
2014/04/04 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
师范生见习总结范文
2015/06/23 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB
PostgreSQL怎么创建分区表详解
2022/06/25 PostgreSQL