批量从文件中读取多行

2024-01-10

我想知道是否有一种方法可以从文件中批量读取多行。例如:

with open(filename, 'rb') as f:
    for n_lines in f:
        process(n_lines)

在这个函数中,我想做的是:对于每次迭代,将从文件中批量读取接下来的 n 行。

因为单个文件太大了。我想做的就是一部分一部分地阅读它。


itertools.islice https://docs.python.org/3/library/itertools.html#itertools.islice和两个参数iter可以用来实现这一点,但这有点有趣:

from itertools import islice

n = 5  # Or whatever chunk size you want
with open(filename, 'rb') as f:
    for n_lines in iter(lambda: tuple(islice(f, n)), ()):
        process(n_lines)

这将保留isliceing off n一次行(使用tuple实际上强制读入整个块)直到f筋疲力尽,此时就会停止。最终块将小于n行数(如果文件中的行数不是偶数倍)n。如果您希望所有行都是单个字符串,请更改for循环为:

    # The b prefixes are ignored on 2.7, and necessary on 3.x since you opened
    # the file in binary mode
    for n_lines in iter(lambda: b''.join(islice(f, n)), b''):

另一种方法是使用izip_longest为了这个目的,这就避免了lambda功能:

from future_builtins import map  # Only on Py2
from itertools import izip_longest  # zip_longest on Py3

    # gets tuples possibly padded with empty strings at end of file
    for n_lines in izip_longest(*[f]*n, fillvalue=b''):

    # Or to combine into a single string:
    for n_lines in map(b''.join, izip_longest(*[f]*n, fillvalue=b'')):
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批量从文件中读取多行 的相关文章

  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 使用Python请求登录Google帐户

    在多个登录页面上 需要谷歌登录才能继续 我想用requestspython 中的库以便让我自己登录 通常这很容易使用requests库 但是我无法让它工作 我不确定这是否是由于 Google 做出的一些限制 也许我需要使用他们的 API 或
  • 您可以格式化 pandas 整数以进行显示,例如浮点数的“pd.options.display.float_format”?

    我见过this https stackoverflow com questions 18404946 py pandas formatdataframe and this https stackoverflow com questions
  • datetime.datetime.now() 返回旧值

    我正在通过匹配日期查找 python 中的数据存储条目 我想要的是每天选择 今天 的条目 但由于某种原因 当我将代码上传到 gae 服务器时 它只能工作一天 第二天它仍然返回相同的值 例如当我上传代码并在 07 01 2014 执行它时 它
  • 使用 xlrd 打开 BytesIO (xlsx)

    我正在使用 Django 需要读取上传的 xlsx 文件的工作表和单元格 使用 xlrd 应该可以 但因为文件必须保留在内存中并且可能不会保存到我不知道如何继续的位置 本例中的起点是一个带有上传输入和提交按钮的网页 提交后 文件被捕获req
  • “隐藏”内置类对象、函数、代码等的名称和性质[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我很好奇模块中存在的类builtins无法直接访问的 例如 type lambda 0 name function of module
  • Docker 中的 Python 日志记录

    我正在 Ubuntu Web 服务器上的 Docker 容器中测试运行 python 脚本 我正在尝试查找由 Python Logger 模块生成的日志文件 下面是我的Python脚本 import time import logging
  • 在 Sphinx 文档中*仅*显示文档字符串?

    Sphinx有一个功能叫做automethod从方法的文档字符串中提取文档并将其嵌入到文档中 但它不仅嵌入了文档字符串 还嵌入了方法签名 名称 参数 我如何嵌入only文档字符串 不包括方法签名 ref http www sphinx do
  • 从 NumPy ndarray 中选择行

    我只想从 a 中选择某些行NumPy http en wikipedia org wiki NumPy基于第二列中的值的数组 例如 此测试数组的第二列包含从 1 到 10 的整数 gt gt gt test numpy array nump
  • 为什么 Pickle 协议 4 中的 Pickle 文件是协议 3 中的两倍,而速度却没有任何提升?

    我正在测试 Python 3 4 我注意到 pickle 模块有一个新协议 因此 我对 2 个协议进行了基准测试 def test1 pickle3 open pickle3 wb for i in range 1000000 pickle
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解
  • cv2.VideoWriter:请求一个元组作为 Size 参数,然后拒绝它

    我正在使用 OpenCV 4 0 和 Python 3 7 创建延时视频 构造 VideoWriter 对象时 文档表示 Size 参数应该是一个元组 当我给它一个元组时 它拒绝它 当我尝试用其他东西替换它时 它不会接受它 因为它说参数不是
  • Kivy - 单击按钮时编辑标签

    我希望 Button1 在单击时编辑标签 etykietka 但我不知道如何操作 你有什么想法吗 class Zastepstwa App def build self lista WebOps getList layout BoxLayo

随机推荐

  • 大型、复杂的对象作为 Web 服务结果 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 女士们先生们 大家好 好的 接着我的另一个问题ASP NET Web 服务结果 代理类和类型转换 https stackoverflo
  • 发布 Google 文档插件:项目密钥与当前项目不相关

    我正在尝试按照以下说明发布一个简单的 Google 文档插件 发布附加组件 https developers google com apps script add ons publish 但是 当完成 Google Apps Marketp
  • 如何在Qt Creator中配置CDB?

    问题here https stackoverflow com q 5318691 559085与我的相同 但那里的解决方案对我不起作用 我在 Windows 7 上使用 QtCreator 2 4 1 当我尝试调试一个简单的 hello w
  • 数组解构跳过值

    My 爱彼迎风格指南 https github com airbnb javascript告诉我我应该使用数组解构对于下面的作业 const splittedArr 1 2 3 4 5 const result splittedArr 1
  • MacPython:以编程方式查找所有串行端口

    我正在寻找一种解决方案 以编程方式使用 python 返回所有可用的串行端口 此刻我正在进入ls dev tty or ls dev cu 进入终端以列出端口并将它们硬编码到 pyserial 类中 你可以这样做 import glob d
  • 执行 sidekiq 登录 heroku

    我想在我的 heroku 环境中执行 sidekiq 日志文件 但我在文档中找不到任何内容 谷歌也没有在这里帮助我 我确信它一定是这样的exec sidekiq L log sidekiq log但该命令在 Heroku 上失败 如何在 h
  • 通过触摸或点击在 Android Google 地图上添加标记

    我想在 Android 上使用 Google 地图开发地图应用程序 现在 我想通过触摸或点击地图在地图上添加标记 如何应用触摸事件将标记放在地图上 尝试使用新的谷歌地图 API v2 https developers google com
  • 将非连续列数据合并为单列

    我想将值从列 B C D 复制到列 J 同时保持值的行位置 我想将值从 E F G 列复制到 K 列 同时保持行位置 Desired results in Cols J K The colors are only to clarify my
  • AngularJS - 依赖下拉列表:在模型中存储一个值,使用其他值作为下一个下拉列表的源

    我有两个依赖的下拉菜单 一个显示国家 另一个显示国家 我希望第一个只保存国家 地区 ID 但使用整个对象作为源 对于第二个下拉列表 这是我到目前为止所拥有的 同一屏幕中可能有许多这样的下拉菜单 因此这可能会使事情变得复杂 因为我需要复制临时
  • 如何以编程方式从 win7 中的“屏幕分辨率”对话框获取显示器编号?

    当您按 屏幕分辨率 对话框中的 识别 按钮时 Windows 会在每个显示器上显示大的白色显示器编号 在 Windows XP 中 使用 EnumDisplayDevices 很容易以编程方式与显示器坐标一起找到它们 但在 Windows
  • 通过php提取excel中动态变化的数据

    我有一个打开的 Excel 工作表 另一个程序通过 DDE 不断更新该工作表 我希望有一个 php 脚本来访问此 Excel 工作表中的一些数据 我尝试过使用 PHPExcel 但似乎我无法让我所做的更改 例如通过 setCellValue
  • Grails:映射同一类型的字段和belongsTo的列名

    我正在尝试映射此类的列名称 class Amount String total Total amount of something String type Type of amount Dollars Times something Bon
  • 使用 jq/yq 进行遍历

    我有一个类似于下面的数据文件 user01 name User01 Name age 20 sex male state CA zip 92012 user02 name User02 Name age 22 sex female user
  • Gitlab 与 SonarQube 集成

    我对开发社区 特别是 DevOps 实践还很陌生 作为项目的一部分 我们正在尝试将 SonarQube 与 Gitlab 集成 在 SonarQube 和 Git CI 持续集成 上进行了一些研发 看起来插件已为 Github 和 Sona
  • apache http 基于 ip 重写/重定向

    我想将一个ip重定向到我网站的另一个视图 例如 我希望来自ip x的访问者看到www xxx com DEBUG 1当所有其他访问者看到正常的 www xxx com 时 我该如何在 apache 配置文件中执行此操作 使用哪些指令 下面是
  • 通过 NSUserDefaults 设置 ios UserAgent:工作一半的时间?

    这真让我抓狂 我有两个只是 UIWebView 的应用程序 使用 XCode 4 5 2 和 iOS 6 0 SDK 我想更改网络调用的 UserAgent 我在以下两个地方都使用了这段代码 NSString secretagent MyU
  • Eclipse CDT:禁用红色下划线

    我使用 eclipse cdt 并且包含了一些文件 不幸的是 我无法将包含路径添加到我的 Eclipse 项目中 因为这样当 Eclipse 开始对新添加的包含进行索引时 它总是会崩溃 因此我想关闭突出显示错误的功能 我可以在哪里执行此操作
  • 选择字段中的 Django 空标签 - 没有查询集

    在选择字段上设置空标签给我带来了一些问题 我看过类似的答案this https stackoverflow com questions 14541074 empty label choicefield django 但这只是谈论形式 假设我
  • Swift Core 数据与 Web 服务器同步

    我正在制作一个应用程序 在 Swift 中 需要在离线和在线模式下运行 当处于离线模式时 数据将存储在本地 CoreData 上 一旦检测到网络 在线 它应该与服务器同步并更新后端数据库 应该怎样做呢 有库或 Pod 吗 我见过这个帖子 h
  • 批量从文件中读取多行

    我想知道是否有一种方法可以从文件中批量读取多行 例如 with open filename rb as f for n lines in f process n lines 在这个函数中 我想做的是 对于每次迭代 将从文件中批量读取接下来的