1

我有一个文件,我打开它,然后我检查了一些东西。如果该行以“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"
4

1 回答 1

2

如果我理解正确:

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原因。如果需要,您也可以next手动调用函数。查看PEP-234了解更多详情。

于 2013-06-12T21:56:55.747 回答