python读取大数据的不同方式

2024-03-11

我正在处理大数据,因此找到一种读取数据的好方法非常重要。 我只是对不同的阅读方法有点困惑。

1.f=gzip.open(file,'r')
      for line in f:
          process line
     #how can I process nth line? can I?
2.f=gzip.open(file,'r').readlines()
  #f is a list
  f[10000]
  #we can process nth line

3.f=gzip.open(file,'r')
  while True:
       linelist=list(islice(f,4))

4.for line in fileinput.input():
  process line

2 和 3 有什么区别?我只是发现他们的内存使用量是相同的。 islice() 还需要首先将整个文件加载到内存中(但稍后会一点一点地加载)。 而且我听说第四种方法是最不消耗内存的,它确实是一点一点地处理,对吗? 对于 10GB 规模的文件,您会推荐哪种文件读取方法?欢迎任何想法/信息。 谢谢

编辑:我认为我的问题之一是我有时需要随机挑选特定的行。 说:

f1=open(inputfile1, 'r')
while True:
    line_group1 = list(islice(f1, 3))
    if not line_group1:
        break
    #then process specific lines say, the second line.
    processed 2nd line
    if ( ....):
           LIST1.append(line_group1[0])
           LIST1.append(processed 2nd line)
           LIST1.append(line_group1[2])

然后……喜欢

with open(file,'r') as f,
    for line in f:
       # process line

可能不起作用,我是对的吗?


你忘了 -

with open(...) as f:
    for line in f:
        <do something with line>

The with语句处理打开和关闭文件,包括内部块中是否引发异常。这for line in f处理文件对象f作为可迭代对象,它会自动使用缓冲 IO 和内存管理,因此您不必担心大文件。

不建议将 2,3 用于大文件,因为它们会在处理开始之前读取并加载内存中的整个文件内容。要读取大文件,您需要找到不一次性读取整个文件的方法。

应该有一种——最好只有一种——明显的方法来做到这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python读取大数据的不同方式 的相关文章

  • 如何更改 FacetGrid 中的边距标题颜色

    使用 Seaborn Facet Grids 如何仅更改边距标题的颜色 注意g set titles color red 更改两个标题 p sns load dataset penguins sns displot data p x fli
  • 阻止 TensorFlow 访问 GPU? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以纯粹在CPU上运行TensorFlow 我机器上的所有内存都被运行 TensorFlow 的单独进程占用 我尝试将 per process memory fraction 设置为 0 但未成功
  • 从 Django 调用 Postgres SQL 存储过程

    我正在开发一个带有 Postgresql 数据库的 Django 项目 我编写了一个可以在 Postgres 上完美运行的存储过程 现在我想从 Django 1 5 调用该存储过程 我已经编写了代码 但它提示错误 CREATE FUNCTI
  • 在 Pandas 中,如何从基于另一个数据框的数据框中删除行?

    我有 2 个数据框 一个名为 USERS 另一个名为 EXCLUDE 他们都有一个名为 电子邮件 的字段 基本上 我想删除 USERS 中包含 EXCLUDE 中包含电子邮件的每一行 我该怎么做 您可以使用boolean indexing
  • 在 python 3 中使用子进程

    我使用 subprocess 模块在 python 3 中运行 shell 命令 这是我的代码 import subprocess filename somename py in practical i m using a real fil
  • 字符串中的注释和注释中的字符串

    我正在尝试使用 Python 和 Regex 计算 C 代码中包含的注释中的字符数 但没有成功 我可以先删除字符串以删除字符串中的注释 但这也会删除注释中的字符串 结果会很糟糕 是否有机会通过使用正则表达式来询问不匹配注释中的字符串 反之亦
  • 根据 Pandas 中的列表对多列进行排序

    感谢有关如何根据 pandas 中的倍数列表对给定多列进行排序的任何提示 如下所示 import pandas as pd sort a a d e sort b s1 s3 s6 sort c t1 t2 t3 df pd DataFra
  • 编辑 Jupyter Notebook 时 VS Code 中缺少“在选择中查找”

    使用 Jupyter Notebook 时 VSCode 中缺少 在选择中查找 按钮 它会减慢开发速度 所以我想请问有人知道如何激活它吗 第一张图显示了在 python 文件中的搜索 替换 第二张图显示了笔记本电脑中缺少的按钮 Python
  • Pandas:如何将数据框插入 Clickhouse

    我正在尝试将 Pandas 数据框插入 Clickhouse 这是我的代码 import pandas import sqlalchemy as sa uri clickhouse default localhost default ch
  • Python Django-如何从输入文件标签读取文件?

    我不想将文件保存在我的服务器上 我只想在下一页中读取并打印该文件 现在我有这个 index html
  • 迭代列表的奇怪速度差异

    我创建了两个重复两个不同值的长列表 在第一个列表中 值交替出现 在第二个列表中 一个值出现在另一个值之前 a1 object object 10 6 a2 a1 2 a1 1 2 然后我迭代它们 不对它们执行任何操作 for in a1 p
  • Python:我不明白 sum() 的完整用法

    当然 我明白你使用 sum 与几个数字 然后它总结所有 但我正在查看它的文档 我发现了这一点 sum iterable start 第二个参数 start 的作用是什么 这太尴尬了 但我似乎无法通过谷歌找到任何示例 并且对于尝试学习该语言的
  • 使用 NLP 进行地址分割

    我目前正在开发一个项目 该项目应识别地址的每个部分 例如来自 str Jack London 121 Corvallis ARAD ap 1603 973130 输出应如下所示 street name Jack London no 121
  • 从 python 检测 macOS 中的暗模式

    我正在编写一个 PyQt 应用程序 我必须添加一个补丁 以便在启用暗模式的 Macos 上可以读取字体 app QApplication Fix for the font colours on macos when running dark
  • 从列表python的单个列表中删除子列表

    我已经经历过从列表列表中删除子列表 https stackoverflow com questions 47209786 removing sublists from a list of lists 但当我为我的数据集扩展它时 它不适用于我
  • 操作错误:(sqlite3.OperationalError) SQL 变量太多,同时将 SQL 与数据帧一起使用

    我有一个熊猫数据框 如下所示 activity User Id 0 VIEWED MOVIE 158d292ec18a49 1 VIEWED MOVIE 158d292ec18a49 2 VIEWED MOVIE 158d292ec18a4
  • 通过 Web 界面执行 python 单元测试

    是否可以通过 Web 界面执行单元测试 如果可以 如何执行 EDIT 现在我想要结果 对于测试 我希望它们是自动化的 可能每次我对代码进行更改时 抱歉我忘了说得更清楚 EDIT 这个答案此时已经过时了 Use Jenkins https j
  • python 日志记录会刷新每个日志吗?

    当我使用标准模块将日志写入文件时logging 每个日志会分别刷新到磁盘吗 例如 下面的代码会将日志刷新 10 次吗 logging basicConfig level logging DEBUG filename debug log fo
  • 使用 Python 将对象列表转为 JSON

    我在转换时遇到问题Object实例到 JSON ob Object list name scaping myObj base url u number page for ob in list name json string json du
  • tkinter:打开一个带有按钮提示的新窗口[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 用户如何按下 tkinter GUI 中的按钮来打开新窗口 我只需要非常简单的解决方案 如果代码也能被解释那就太好了 这

随机推荐

  • 将多个 Excel 文件中相同结构的工作表追加到一个中

    我想将多个 Excel 文件合并为一个 我想要合并的 Excel 文件具有相同的工作表 所以在这一点上 我想合并不同 Excel 文件中的相同工作表 我有这段代码要组合 但是此代码仅组合了 Excel 文件中的最新活动工作表 Sub sim
  • Firefox 和远程 XSL 样式表

    我正在尝试使用远程 XSL 样式表加载本地 XML 文件 IE 似乎可以很好地处理这个问题 但 Firefox 却不行 有解决办法吗 如果不是语法问题 我认为这是一个同源政策问题 火狐浏览器 和还有 Chrome 和 IE9 https s
  • 定义函数参数的默认值

    在 Lua wiki 中我找到了一种为缺失参数定义默认值的方法 function myfunction a b c b b or 7 c c or 5 print a b c end 这是唯一的方法吗 PHP 风格myfunction a
  • CMake:无法运行 MSBuild 命令:MSBuild.exe

    我正在尝试建立FIAT https ethiy github io FastImageAnnotationTool using CMakeWindows 10 上的 GUI CMake Error at CMakeLists txt 3 p
  • 创建一个 Swift Dictionary 子类?

    我可以子类化一个Swift Dictionary这样我就可以通过我的习俗Dictionary到期望普通的方法Dictionary Edit 就我而言 我想要我的定制Dictionary按插入顺序迭代其键 https stackoverflo
  • 我的 foursquare 身份验证、回调 url 和应用程序网站是什么?

    我试图将 foursquare API 集成到我的 iPhone 中 但一开始就卡住了 注册我的应用程序 它要求我提供callback url和应用程序网站 以便注册我的应用程序并获取我的身份验证代码 但我不明白我应该为这些链接输入什么 因
  • ODP.NET程序编译

    当我尝试使用 ODP NET 执行创建过程时 我收到 ORA 24344 成功但出现编译错误 但是 当我在 SQL Developer 中运行相同的语句时 它编译成功 有谁知道我需要更改什么才能编译我的程序 是字符集问题吗 我使用的是 Or
  • Apache Wink Accept() 失败并出现 NullPointerException

    我正在使用 Wink 1 2 在 jBoss EAP 6 1 7 2 1Final 上部署 RESTful Web 应用程序 并在所有请求上出现以下异常 b JBWEB000070 exception b pre java lang Nul
  • JSF“记住我”选项

    在其他语言中 当用户登录时 您可以将 cookie 的过期日期设置为与今天相差甚远 并且您可以实现此目的 我如何在 JSF2 中实现这个 我有一个 jsf sessionscoped bean 但是如何才能长时间维持这个会话呢 您也可以使用
  • 如何修复Hyperledger Fabric中“执行End-2-End场景失败”的问题?

    我正在尝试运行此处提供的 Fabric 示例 https github com hyperledger fabric samples tree release 1 2 first network https github com hyper
  • 从 Java 创建快捷链接 (.lnk)

    我正在用 Java 编写一个安装程序 启动器 并且需要能够在此过程中在用户桌面上创建快捷方式 我对任何想法都感兴趣 认为这是实现这一目标的最佳方法 我考虑过的一个选择是在 Windows 上使用 VB 脚本并使用本机 shortcut ex
  • 使用阻塞REST请求来实现发布/订阅

    最近 我被要求调查与电话系统供应商集成的可行性 该供应商希望使用 RESTful Web 服务提供电话事件 例如线路振铃 分机应答 呼叫清除 我指出 REST 是一个请求 响应协议 他们正在执行发布 订阅 他们建议的解决方案是发出 HTTP
  • 映射日期时间未转换为正确的格式

    我有这个映射器 在映射逻辑中我将检查属性是否具有属性 CustomDateConverAttribute 如果有 我将调用一个函数将字符串转换为正确的格式 CreateMap
  • 如何取消 HostingEnvironment.QueueBackgroundWorkItem

    有没有办法取消后台任务HostingEnvironment QueueBackgroundWorkItem 有CancellationToken它会通知任务是否被取消 但我该怎么做 参考https msdn microsoft com en
  • Python 无法识别两个相等的字符串

    我在 python 中遇到了一个关于字符串的奇怪问题 我有两个列表 我必须在两个字符串中找到相同的名称 第二个列表是来自之前打开的文件的 readline 这是我的代码 import requests import sys from bs4
  • 将 y 轴网格线添加到 D3 甘特图

    将水平网格线添加到 d3 甘特图的最佳方法是什么这个例子 http bl ocks org baramuyu be8e3005cfcb0aba5f763963c75f3c7e 我最初想制作一个轴并在图表的长度上做刻度线 如这个例子 http
  • 将变量传递给 Mako 模板

    在 Perl 中 通过使用 Template Toolkit 这就是我所做的 Perl my vars name gt Count Edward van Halen tt gt process letters overdrawn vars
  • 通过引用传递参数

    我想问是否可以通过引用将参数传递给脚本函数 即在 C 中执行如下所示的操作 void boo int myint myint 5 int main int t 4 printf d n t t gt 4 boo t printf d n t
  • Angular HttpInterceptor 不更改标头

    我编写了一个 Angular 4 3 6 HttpInterceptor 来添加一些标头字段 但是如果我在调试器中检查它们 标头不会更新 任何想法 import Injectable from angular core import Htt
  • python读取大数据的不同方式

    我正在处理大数据 因此找到一种读取数据的好方法非常重要 我只是对不同的阅读方法有点困惑 1 f gzip open file r for line in f process line how can I process nth line c