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 26 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
Python实现的用户登录系统功能示例
Feb 05 Python
在python3.5中使用OpenCV的实例讲解
Apr 02 Python
python3安装pip3(install pip3 for python 3.x)
Apr 03 Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
python使用epoll实现服务端的方法
Oct 16 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
Jun 12 Python
python与c语言的语法有哪些不一样的
Sep 13 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
我的php学习笔记(毕业设计)
2012/02/21 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
php使用正则表达式获取图片url的方法
2015/01/16 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
Python的mysql数据库的更新如何实现
2017/07/31 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
关于多元线性回归分析——Python&SPSS
2020/02/24 Python
JAVA招聘远程笔试题
2015/07/23 面试题
学生打架检讨书大全
2014/01/23 职场文书
小摄影师教学反思
2014/04/27 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
会计电算化专业求职信
2014/06/10 职场文书
影视广告专业求职信
2014/09/02 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
2014年语文教师工作总结
2014/12/18 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python