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中正则表达式的详细教程
Apr 30 Python
Python获取SQLite查询结果表列名的方法
Jun 21 Python
python自定义函数实现一个数的三次方计算方法
Jan 20 Python
Python控制键盘鼠标pynput的详细用法
Jan 28 Python
Python3多线程基础知识点
Feb 19 Python
Python配置虚拟环境图文步骤
May 20 Python
Django 全局的static和templates的使用详解
Jul 19 Python
pytorch 常用线性函数详解
Jan 15 Python
Python实现汇率转换操作
May 03 Python
Python是怎样处理json模块的
Jul 16 Python
Python将字典转换为XML的方法
Aug 01 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 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代码把全角数字转为半角数字
2007/12/10 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
使用 vue-i18n 切换中英文效果
2018/05/23 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
详解Python多线程
2016/11/14 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
Python通过字典映射函数实现switch
2020/11/06 Python
英国最大的海报商店:GB Posters
2018/03/20 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
银行求职推荐信范文
2013/11/30 职场文书
专业求职信撰写要诀
2014/02/18 职场文书
治超工作实施方案
2014/05/04 职场文书
教师师德演讲稿
2014/05/06 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
2015年库房工作总结
2015/04/30 职场文书
个人收入证明格式
2015/06/24 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python