如何跳转到一个巨大的文本文件中的特定行?

2024-03-23

下面的代码是否有其他替代方案:

startFromLine = 141978 # or whatever line I need to jump to

urlsfile = open(filename, "rb", 0)

linesCounter = 1

for line in urlsfile:
    if linesCounter > startFromLine:
        DoSomethingWithThisLine(line)

    linesCounter += 1

如果我正在处理一个巨大的文本文件(~15MB)行未知但长度不同,并且需要跳转到我事先知道的特定行?当我知道我至少可以忽略文件的前半部分时,我对逐一处理它们感到很糟糕。寻找更优雅的解决方案(如果有)。


如果不至少读一次文件,就无法向前跳转,因为您不知道换行符在哪里。你可以这样做:

# Read in the file once and build a list of line offsets
line_offset = []
offset = 0
for line in file:
    line_offset.append(offset)
    offset += len(line)
file.seek(0)

# Now, to skip to line n (with the first line being line 0), just do
file.seek(line_offset[n])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何跳转到一个巨大的文本文件中的特定行? 的相关文章

随机推荐

  • 如何从 Drools 列表中获取最大最小项目

    我有课 class Person public Date dateOfBirth public List
  • .Net4 应用程序中托管的 .Net2 程序集在 x86 中比在 AnyCpu 模式中表现更好?

    我有一个引用第 3 方 Net2 程序集的 Net4 WinForms 应用程序 其中包含图形密集型视觉控件 我注意到一个huge当我不小心将应用程序从 AnyCpu 切换到 x86 编译模式时 应用程序的视觉性能得到了改善 我的开发设备是
  • SSIS 对象变量计数?

    我在 BIDS 2008 中使用 SSIS 并且试图获取包含文件列表的对象变量的计数 关于如何做到这一点有什么想法吗 Thanks 您如何填充此对象变量 根据您填充变量的方式 可以列出更优雅的获取计数的方法 然而 这里有一个快速但肮脏的解决
  • 尽管删除了 IIS,但仍然设置了 IISMAJORVERSION 和 IISMINORVERSION

    我正在创建一个依赖于正在安装的 IIS 的安装程序 为了进行测试 我使用运行 Windows Server 2008 R2 的虚拟机 该虚拟机安装了 Web 服务器角色 我的安装程序使用此条件检查是否安装了 IIS
  • 如何使用 distutils 创建可执行的 .zip 文件?

    Python 2 6 及更高版本能够直接执行 zip 文件 如果 zip 文件包含 main py文件位于 zip 存档的顶部 我想利用此功能来提供我正在开发的工具的预览版本 该工具除了将 zip 文件复制到磁盘之外不需要安装任何内容 是否
  • 使用实体框架选择所有行

    我正在尝试使用实体框架从数据库中选择所有行进行操作 然后再将其发送到表单 var ptx modelname tablename ptx tablename Select 里面有什么 我使用了实体数据源 它提供了我想做的事情所需的一切 re
  • 如何使 div 跨越网格中的多行和多列?

    建立在上一个问题 https stackoverflow com questions 42946454 alternative to css grid layout but not tables 我正在尝试向我的网格布局添加更大的块 在最后
  • 阻止 iframe 设置parent.location(防止framebusting)

    我在自己的域上有一个网站 其中我将 iframe 包含到其他域上的其他网站以进行快速预览 问题是某些网站具有框架破坏代码 可以将用户从我的网站重定向 我怎样才能阻止这个 在 Framebuster 的情况下 即使根本不显示 iframe 也
  • 在对话框外部按下时如何关闭 DialogFragment?

    我正在使用一个DialogFragment 虽然我已成功设置图像以在按下时关闭 即关闭 对话框 但当用户单击对话框之外的任何位置时 我很难找到关闭对话框的方法 就像它与普通对话框一样 我以为会有某种 dialogFragment setCa
  • 枚举作为 TypeScript 中的参数

    是否可以将参数的类型设置为 Enum 像这样 private getRandomElementOfEnum e enum string var length number Object keys e length return e Math
  • 添加适用于 Firefox Webdriver 但不适用于 PhantomJS 的 Cookie

    我有一个带有饼干的泡菜 是通过以下命令创建的 def doLogin driver do login stuff pickle dump driver get cookies open cookies pkl wb 我有获取 cookie
  • 渲染新行的 HTML 规范?

    我正在尝试将一些简单的 HTML 文档 主要包含 div 和 br 标签 呈现为纯文本 但我在何时添加新行方面遇到了困难 我以为这会很简单 div and br 生成新的线条 但看起来有各种微妙的规则 例如 div one line div
  • 如何将两组 weka 实例合并在一起

    目前 我一次将一个实例从一个数据集复制到另一个数据集 有没有办法做到这一点 使字符串映射保持完整 mergeInstances 水平工作 是否有等效的垂直合并 这是我用来将多个 arff 文件中相同结构的数据集读取到一个大型数据集中的循环的
  • 如何在JPA中定义单向OneToMany关系

    我在 JPA 中的实体映射方面遇到以下问题 我有两个实体 第一个是查找 第二个是代表实体翻译的文本 现在我需要将 Lookup 绑定到 Text 但我不希望 Text 引用 Lookup 为了使事情变得更复杂 文本在这种关系中不使用其主键
  • 将行添加到命名范围

    我在 Google 表格中有一个命名范围 A1 K14 我想做的就是在命名范围的底部添加一个新行 这似乎是一项容易的任务 使用此代码不会扩展命名范围 并且我没有收到错误消息 它确实在命名范围之外插入一个新行 这不是我想要做的 如果我改为in
  • 带有单位编号/子前提的 Google 地方自动完成建议不会出现在响应数组中

    我正在使用 Google Places API 使用 javascript 自动完成地址 当我在输入框中输入地址的单元号和街道号时 它会在建议下拉列表中显示结果 但是当我选择地址时 操作 place changed 事件的侦听器没有任何地址
  • Rails:如何向包含变音符号的收件人发送电子邮件?

    我想发送一封包含以下设置的电子邮件 def registration confirmation user recipients user username lt user email gt from Netzwerk Muensterlan
  • 内连接与何处连接

    两者之间的性能 在 Oracle 中 是否存在差异 Select from Table1 T1 Inner Join Table2 T2 On T1 ID T2 ID And Select from Table1 T1 Table2 T2
  • Hive“ANALYZE TABLE”如何从java执行

    我需要计算配置单元表中的行数 为此 我正在使用查询 ANALYZE TABLE p 7 COMPUTE STATISTICS noscan 我想通过java获取结果 我正在尝试以下操作 代码并没有运气 我得到的错误是 Exception i
  • 如何跳转到一个巨大的文本文件中的特定行?

    下面的代码是否有其他替代方案 startFromLine 141978 or whatever line I need to jump to urlsfile open filename rb 0 linesCounter 1 for li