【问题标题】:How to access next line in a file(.txt) in Python如何在 Python 中访问文件(.txt)中的下一行
【发布时间】:2013-06-12 21:44:35
【问题描述】:

我有一个文件,我打开它,然后我检查了一些东西。如果该行以“E PARAM”开头并且在某处也有“OOPS1”,那么我想检查下一行是否以“E PARAM”开头。如果没有,我将创建一个新文件并将其复制到那里,直到我没有点击另一个“E PARAM”行。由于 Python 没有 next() 选项......这里有什么可以帮助我的

import string
import os


A = "k_trap_cur"
B = open(A, 'r+')
lines = B.readline()

for lines in B:
    if lines.startswith("E PRAM"):
        if "OOPS: 1" in lines:
            while lines.next().startswith("E PARAM") == False: // HERE I want to access next line
                print " YES"

【问题讨论】:

  • read()读取文件并用“E PARAM”分割
  • 我的文件是一个有很多行的大文件。在 while 循环中,我想检查下一行是否以 ("E PARAM") 开头。我不必拆分它
  • 在循环中使用 next(B)B.readline() 查看下一行

标签: python next


【解决方案1】:

如果我没听错的话:

b = open(a, 'r+')
for line in b:
    if line.startswith("E PRAM") and "OOPS: 1" in line:
        next_line = next(b)
        # do whatever you need

文件提供了所谓的“迭代器协议”,这就是它们在for-loops 中工作的原因。如果需要,您也可以手动调用next 函数。详情请查看PEP-234

【讨论】:

  • @kirelagin .. 非常感谢您的链接。我试着按照你说的做,但它给了我一个错误。代码:对于 B 中的行:如果行中的 lines.startswith("EchoStar PRAM") 和 "OOPS: 1":next_line = next(B) print next_line Error: next_line = next(B) NameError: name 'next' is not定义
  • :- 错误:next_line = next(B) NameError: name 'next' is not defined
  • @Nick next 是在 Python 2.6 中添加的,可能您的版本较旧。那么next_line = next(b) 应该可以工作了。
猜你喜欢
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 2020-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-27
  • 1970-01-01
相关资源
最近更新 更多