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编程中NotImplementedError的使用方法
Apr 21 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
Dec 13 Python
在Pycharm中自动添加时间日期作者等信息的方法
Jan 16 Python
python输入错误后删除的方法
Oct 12 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
Mar 10 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
详解python的xlwings库读写excel操作总结
Feb 26 Python
使用numpy nonzero 找出非0元素
May 14 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
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
php验证码生成器
2017/05/24 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
防止文件缓存的js代码
2013/01/10 Javascript
JS的get和set使用示例
2014/02/20 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
python实现百度关键词排名查询
2014/03/30 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
python三引号输出方法
2019/02/27 Python
python实现函数极小值
2019/07/10 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
CK美国官网:Calvin Klein
2016/08/26 全球购物
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
Shein英国:女性时尚网上商店
2019/04/10 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
秋季运动会活动方案
2014/02/05 职场文书
大四毕业生自荐书
2014/07/05 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers
MySQL池化框架学习接池自定义
2022/07/23 MySQL