广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 读取大文件
  • 802
分享到

Python 读取大文件

大文件Python 2023-01-31 06:01:40 802人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

在处理大数据时,有可能会碰到好几个 G 大小的文件。如果通过一些工具(例如:NotePad++)打开它,会发生错误,无法读取任何内容。 那么,在 python 中,如何快速地读取这些大文件呢? | 版权声明:一去、二三里,未经博

在处理大数据时,有可能会碰到好几个 G 大小的文件。如果通过一些工具(例如:NotePad++)打开它,会发生错误,无法读取任何内容。

那么,在 python 中,如何快速地读取这些大文件呢?

| 版权声明:一去、二三里,未经博主允许不得转载。

读取文件,最常见的方式是:

with open('filename', 'r', encoding = 'utf-8') as f:
    for line in f.readlines():
        do_something(line)

但是,当完成这一操作时,readlines() 方法(read() 也一样)会将整个文件加载到内存中。在文件较大时,往往会引发 MemoryError(内存溢出)。

那么,如何避免这个问题?

稍微好点儿的方式是使用 fileinput 模块:

import fileinput

for line in fileinput.input(['filename']):
    do_something(line)

调用 fileinput.input() 会按照顺序读取行,但是在读取之后不会将它们保留在内存中。

除此之外,也可使用 while() 循环和 readline() 来逐行读取:

with open('filename', 'r', encoding = 'utf-8') as f:
    while True:
        line = f.readline()  # 逐行读取
        if not line:  # 到 EOF,返回空字符串,则终止循环
            break
        do_something(line)

有时,可能希望对每次读取的内容进行更细粒度的控制。

在这种情况下,可以使用 iteryield

def read_in_chunks(file_obj, chunk_size = 2048):
    """
    逐件读取文件
    默认块大小:2KB
    """
    while True:
        data = file_obj.read(chunk_size)  # 每次读取指定的长度
        if not data:
            break
        yield data

with open('filename', 'r', encoding = 'utf-8') as f:
    for chuck in read_in_chunks(f):
        do_something(chunk)

这才是 Pythonci 最完美的方式,既高效又快速:

with open('filename', 'r', encoding = 'utf-8') as f:
    for line in f:
        do_something(line)

with 语句句柄负责打开和关闭文件(包括在内部块中引发异常时),for line in f 将文件对象 f 视为一个可迭代的数据类型,会自动使用 io 缓存和内存管理,这样就不必担心大文件了。

  • How to read large file, line by line in python

--结束END--

本文标题: Python 读取大文件

本文链接: https://www.lsjlt.com/news/189367.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 读取大文件
    在处理大数据时,有可能会碰到好几个 G 大小的文件。如果通过一些工具(例如:NotePad++)打开它,会发生错误,无法读取任何内容。 那么,在 Python 中,如何快速地读取这些大文件呢? | 版权声明:一去、二三里,未经博...
    99+
    2023-01-31
    大文件 Python
  • python读取大文件
    python读取文件对各列进行索引 可以用readlines, 也可以用readline, 如果是大文件一般就用readlined={} a_in = open("testfile.txt", "r") for line in a_in...
    99+
    2023-01-31
    大文件 python
  • Python读取大文件(GB)
    最近处理文本文档时(文件约2GB大小),出现memoryError错误和文件读取太慢的问题,后来找到了两种比较快Large File Reading 的方法,本文将介绍这两种读取方法。 Preliminary   我们谈到“...
    99+
    2023-01-31
    大文件 Python GB
  • python怎么读取大文件
    这篇文章主要介绍“python怎么读取大文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python怎么读取大文件”文章能帮助大家解决问题。可以通过两种方法利用python读取大文件:第一种是利用...
    99+
    2023-06-30
  • 强悍的 Python —— 读取大文件
    Python 环境下文件的读取问题,请参见拙文 Python 基础 —— 文件 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件。 1. rea...
    99+
    2023-01-31
    强悍 大文件 Python
  • 怎么中python读取大文件
    本篇文章为大家展示了怎么中python读取大文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞...
    99+
    2023-06-14
  • Python按行读取文件的实现方法【小文件和大文件读取】
    本文实例讲述了Python按行读取文件的实现方法。分享给大家供大家参考,具体如下: 小文件: #coding=utf-8 #author: walker #date: 2013-12-30 #funct...
    99+
    2022-06-04
    文件 大文件 方法
  • python对大文件的增量读取
    欢迎关注我的豆瓣http://www.douban.com/note/484517776/  对于很多大文件的增量读取,如果遍历每一行比对历史记录的输钱或者全都加载到内存通过历史记录的索引查找,是非常浪费资源的,网上有很多人的技术博客都是写...
    99+
    2023-01-31
    增量 大文件 python
  • python如何流式读取大文件
    这篇文章将为大家详细讲解有关python如何流式读取大文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何流式读取大文件使用with…open…可以从文件中读...
    99+
    2023-06-27
  • python简单读取大文件的方法
    本文实例讲述了python简单读取大文件的方法。分享给大家供大家参考,具体如下: Python读取大文件(GB级别)采用的办法很简单: with open(...) as f: for line in...
    99+
    2022-06-04
    大文件 简单 方法
  • PHP怎么读取大文件
    小编给大家分享一下PHP怎么读取大文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!衡量成功唯一能确认我们对代码所做改进是否有效的方式是:衡量一个糟糕的情况,然后...
    99+
    2023-06-15
  • 【Python】Python读取CSV文件
    CSV文件是一种常见的数据存储格式,很多人在日常工作中需要使用Python处理CSV文件。Python提供了多种方法来读取CSV文件,包括使用标准库、第三方库和内置函数。本文将介绍多种Python读取...
    99+
    2023-09-12
    python pandas 数据分析
  • python读取nc文件
    nc文件的处理方式比较多,可以用MATLAB、JAVA、C、python或者其他的语言。我这两天折腾用python读取nc文件,查阅很多资料,左拼右凑的终于读出来了。 1)Anaconda的安装这里有详细的讲解。搜索“Ancon...
    99+
    2023-01-31
    文件 python nc
  • python读取xml文件
    什么是xml?xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。abc.xml<xml version="1.0" encoding="utf-8"> <catalo...
    99+
    2023-01-31
    文件 python xml
  • python读取table文件
    有个table文件, 有时候需要处理header , 可以用linecache 模块#!/usr/bin/env python # -*- coding: ascii -*- import linecache import fileinpu...
    99+
    2023-01-31
    文件 python table
  • python文件读取 readlines
    一、需求: 有类似如下两个文件需要交差对比,进行处理。 1.txt 1 2 3 1 2.txt A B C D 二、问题: 首先想到的是打开之后,两次for循环就是了 #错误写法 f1=open(r"D:\pytest\...
    99+
    2023-01-31
    文件 python readlines
  • python读取sqlite文件
    import sqlite3 这是python内置的,不需要pip install 包 数据库里面有很多张表 要操作数据库首先要连接conect数据库 mydb=sqlite3.connect("alfw.sqlite") 然后...
    99+
    2023-01-31
    文件 python sqlite
  • python读取xlsx文件
    我是在win7下读取的。 python版本是:3.5 import xlrd import re import sqlite3 def read_xlsx(): workbook = xlrd.open_workbook('E:...
    99+
    2023-01-31
    文件 python xlsx
  • python文件的读取
    python文件的读取 1.文件的读取1.read() 读取整个文件2.readline() 每次读取一行文件3. readlines() 读取文件的所有行 2.文件的写入1.以"x"方式...
    99+
    2023-09-01
    python 数据分析 pandas numpy 文件读取
  • java如何读取大文件文本
    Java可以使用`BufferedReader`类来读取大文件文本。`BufferedReader`类提供了一个`readLine(...
    99+
    2023-08-08
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作