Python快速读取超大文件
方法一:
测试文件共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快速读取超大文件相关推荐
- python——快速读取excel文件并插入数据库
写一个小功能. import cStringIO import pandas as pd from sqlalchemy import create_enginepath = "D://Us ...
- 如何使用python快速读取tsv文件
import pandas as pd data = pd.read_csv('products.tsv', sep='\t') data 如果对tsv文件不太习惯,可以将读取了的文件保存为csv格式 ...
- python文件分块读取_Python多进程分块读取超大文件的方法
本文实例讲述了Python多进程分块读取超大文件的方法.分享给大家供大家参考,具体如下: 读取超大的文本文件,使用多进程分块读取,将每一块单独输出成文件 # -*- coding: GBK -*- i ...
- php快速读取超大excel,PHP如何读取超大excel文件,划重点了
文讲的是php读取超大文件实现例子, 实现方法: 1. 直接采用file函数来操作 注: 由于 file函数是一次性将所有内容读入内存,而php为了防止一些写的比较糟糕的程序占用太多的内存而导致系统内 ...
- json字段顺序读取 python_如何利用Python批量读取视频文件的时间长度?
本期的主题是利用Python来实现对视频文件时间长度的读取. 在学习编程语言时,相比较于通过书本来学习知识,我更喜欢通过观看学习视频的方式来进行学习,通过主讲老师的讲解,我能很直观且快速的了解一些知识 ...
- python找不到文件数据_如何用 Python 正确读取资源文件
我们知道,当你把一个资源文件和一个.py文件放在一起的时候,你可以直接在这个.py文件中,使用文件名读取它.例如: 运行效果如下图所示: 但请注意,这里我是直接运行的read.py这个文件.如果资源文 ...
- python 资源文件_如何用 Python 正确读取资源文件
但这样写稍显麻烦. 如果你的 Python 版本不低于3.7,那么你可以使用importlib.resources来快速读取资源文件: from importlib import resources ...
- python 快速读取图像宽高信息
python 快速读取图像宽高信息 1. 背景 2. 方法 2.1 仅读取图像文件头部信息 2.2 采用特定 python 包读取 1. 背景 存在100w张JPG图像,需要获取它们的宽高信息.如果用 ...
- python怎么读取txt文件内容然后保存到excel-Python实现读取txt文件并转换为excel的方法示例...
本文实例讲述了Python实现读取txt文件并转换为excel的方法.分享给大家供大家参考,具体如下: 这里的txt文件内容格式为: 892天平天国定都在?A开封B南京C北京(B) Python代码如 ...
- python导入txt文件并绘图-Python实现读取txt文件中的数据并绘制出图形操作示例
本文实例讲述了Python实现读取txt文件中的数据并绘制出图形操作.分享给大家供大家参考,具体如下: 下面的是某一文本文件中的数据. 6.1101,17.592 5.5277,9.1302 8.51 ...
最新文章
- JDBC 此驱动程序不支持 Java Runtime Environment (JRE) 1.6 版
- 【MFC】具有提示功能的工具栏
- 模块化操作(es5写法)
- 【计算机视觉】基于OpenCV的人脸识别
- 论文浅尝 | Global Relation Embedding for Relation Extraction
- 获得当前字符串的宽度
- CentOS上使用Docker安装Redis-Cluster (redis6.x)
- mysql游标进阶_MYSQL进阶学习知识拓展一:MySQL 存储过程之游标!
- Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决记录
- Django 的 之 视图
- JBoss JBPM 实践系列(一)--- 安装配置(Tomcat 6.0 + MySQL 5.1)
- mysql如何查看事务日记_修复MySQL中人人头疼的Bug,看这篇就够
- matlab2008 软件下载及安装教程
- 【iPhone资料】历代iPhone参数
- 利用Python制作证件照
- 前端开发SEO搜索引擎优化方案
- LED设备驱动开发实验—源码代码详解
- Cool Edit Pro 常用快捷键
- how2j离线资源,2018,12月26最新
- Translation Regime介绍