方法一:
测试文件共6862646行,79.3M大小,耗时6.7秒。
缺点:每一行数据内容不能大于内存大小(一般不会),否则就会造成MemoryError。

import timeprint("开始处理...")
start = time.time()
file = r'e:\Python\mypy\搜狗词库\sogou_jianhua_new.txt'
with open(file, 'rb') as f:                               #rb方式最快for line in f:li = line.strip()lin = str(li).lstrip("b")
end = time.time()
shi = end - start
print("已完成!总耗时%s秒!" % shi)

方法二:
使用yield:简单理解,yield就是return,返回一个值,并记住返回的位置,下次迭代就从这个位置后(下一行)开始。
正常情况使用上面的方式就可以了,但是,如果遇到整个文件只有一行,
而且按照特定的字符进行分割,上面的方式则不行了,这时候yield就非常有用了。
举个例子,log的形式是以{|}做为分割符的:
2018-06-18 16:12:08,289 - main - DEBUG - Do something{|}……
优点:不再限制每行数据的大小,即使整个大文件只有一行。
缺点:速度比上面的方式要慢。

def read_line(filename, split, size):with open(filename, 'r+') as f:buff = ''                                      #定义缓冲区while True:while split in buff:                       #若split分割符在缓冲区position = buff.index(split)         #查找分割符第一次出现的位置yield buff[:position]                 #返回一个值,并记住返回的位置,下次从此开始buff = buff[(position + len(split)):] #更新buff,继续下一步chunk = f.read(size)                       #若split不在缓冲区,则读取size个字符if not chunk:                             #若chunk为空yield buffbreak                                    #跳出循环buff = buff + chunk                      #若chunk不为空,则更新buff,继续下一步

Python快速读取超大文件相关推荐

  1. python——快速读取excel文件并插入数据库

    写一个小功能. import cStringIO import pandas as pd from sqlalchemy import create_enginepath = "D://Us ...

  2. 如何使用python快速读取tsv文件

    import pandas as pd data = pd.read_csv('products.tsv', sep='\t') data 如果对tsv文件不太习惯,可以将读取了的文件保存为csv格式 ...

  3. python文件分块读取_Python多进程分块读取超大文件的方法

    本文实例讲述了Python多进程分块读取超大文件的方法.分享给大家供大家参考,具体如下: 读取超大的文本文件,使用多进程分块读取,将每一块单独输出成文件 # -*- coding: GBK -*- i ...

  4. php快速读取超大excel,PHP如何读取超大excel文件,划重点了

    文讲的是php读取超大文件实现例子, 实现方法: 1. 直接采用file函数来操作 注: 由于 file函数是一次性将所有内容读入内存,而php为了防止一些写的比较糟糕的程序占用太多的内存而导致系统内 ...

  5. json字段顺序读取 python_如何利用Python批量读取视频文件的时间长度?

    本期的主题是利用Python来实现对视频文件时间长度的读取. 在学习编程语言时,相比较于通过书本来学习知识,我更喜欢通过观看学习视频的方式来进行学习,通过主讲老师的讲解,我能很直观且快速的了解一些知识 ...

  6. python找不到文件数据_如何用 Python 正确读取资源文件

    我们知道,当你把一个资源文件和一个.py文件放在一起的时候,你可以直接在这个.py文件中,使用文件名读取它.例如: 运行效果如下图所示: 但请注意,这里我是直接运行的read.py这个文件.如果资源文 ...

  7. python 资源文件_如何用 Python 正确读取资源文件

    但这样写稍显麻烦. 如果你的 Python 版本不低于3.7,那么你可以使用importlib.resources来快速读取资源文件: from importlib import resources ...

  8. python 快速读取图像宽高信息

    python 快速读取图像宽高信息 1. 背景 2. 方法 2.1 仅读取图像文件头部信息 2.2 采用特定 python 包读取 1. 背景 存在100w张JPG图像,需要获取它们的宽高信息.如果用 ...

  9. python怎么读取txt文件内容然后保存到excel-Python实现读取txt文件并转换为excel的方法示例...

    本文实例讲述了Python实现读取txt文件并转换为excel的方法.分享给大家供大家参考,具体如下: 这里的txt文件内容格式为: 892天平天国定都在?A开封B南京C北京(B) Python代码如 ...

  10. python导入txt文件并绘图-Python实现读取txt文件中的数据并绘制出图形操作示例

    本文实例讲述了Python实现读取txt文件中的数据并绘制出图形操作.分享给大家供大家参考,具体如下: 下面的是某一文本文件中的数据. 6.1101,17.592 5.5277,9.1302 8.51 ...

最新文章

  1. JDBC 此驱动程序不支持 Java Runtime Environment (JRE) 1.6 版
  2. 【MFC】具有提示功能的工具栏
  3. 模块化操作(es5写法)
  4. 【计算机视觉】基于OpenCV的人脸识别
  5. 论文浅尝 | Global Relation Embedding for Relation Extraction
  6. 获得当前字符串的宽度
  7. CentOS上使用Docker安装Redis-Cluster (redis6.x)
  8. mysql游标进阶_MYSQL进阶学习知识拓展一:MySQL 存储过程之游标!
  9. Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决记录
  10. Django 的 之 视图
  11. JBoss JBPM 实践系列(一)--- 安装配置(Tomcat 6.0 + MySQL 5.1)
  12. mysql如何查看事务日记_修复MySQL中人人头疼的Bug,看这篇就够
  13. matlab2008 软件下载及安装教程
  14. 【iPhone资料】历代iPhone参数
  15. 利用Python制作证件照
  16. 前端开发SEO搜索引擎优化方案
  17. LED设备驱动开发实验—源码代码详解
  18. Cool Edit Pro 常用快捷键
  19. how2j离线资源,2018,12月26最新
  20. Translation Regime介绍

热门文章

  1. Just for a stripe of blue sky!
  2. Java网络爬虫以fastjson提取JSON数据
  3. D. Challenging Valleys
  4. Linux下启动jar包不跑日志
  5. 利用输入法输入汉字,如何统计字数
  6. oracle 播布客 视频,播布客视频-Managing Indexes笔记
  7. 大话微服务:(二)对于业务如何划分微服务,即微服务的颗粒度,又称业务边界
  8. Win10任务栏卡死,无响应,一直转圈,点不动
  9. 网易微专业产品经理 学习笔记 ——(1)产品经理之道
  10. 【Java8新特性】Stream流