Python3,增量迭代器

Python3,增量迭代器,python,iterator,increment,Python,Iterator,Increment,我正在逐行处理一个文件。检查每一行是否包含给定的文本。然后,需要将下一行指定给变量 i_line = iter(file) for i_line in file: if text in i_line: #Go to the next line line = next(i_line, None) #A problem break 如何增加迭代器i_行以指向文件的下一行?这两种结构对我都不起作用 next(i_line, None) i

我正在逐行处理一个文件。检查每一行是否包含给定的文本。然后,需要将下一行指定给变量

i_line = iter(file)
for i_line in file:
    if text in i_line:
         #Go to the next line
         line = next(i_line, None) #A problem
         break
如何增加迭代器i_行以指向文件的下一行?这两种结构对我都不起作用

next(i_line, None)
i_line.next()
只需执行下一步(f)

差不多

>>> with open('testFile.txt', 'r') as f:
        for line in f:
            if 'cat' in line:
                final_string = next(f)
因此,对于

My Name is ABC.
I am a male.
My pet is a cat.
It's name is Ronald.
I hate rats.
上述代码给出了

>>> final_string
"It's name is Ronald.\n"
只需执行下一步(f)

差不多

>>> with open('testFile.txt', 'r') as f:
        for line in f:
            if 'cat' in line:
                final_string = next(f)
因此,对于

My Name is ABC.
I am a male.
My pet is a cat.
It's name is Ronald.
I hate rats.
上述代码给出了

>>> final_string
"It's name is Ronald.\n"

使用
line=file.next()
而不是
line=next(i\u line,None)
使用
line=file.next()
而不是
line=next(i\u line,None)
下面是一种使用
next()
处理文件的方法

使用
for file中的行
迭代器和
next
将每隔一行打印一次:

with open(filename) as file:
    for line in file:
        print(line.strip())
        line = next(file,None)

下面是一种使用
next()
处理文件的方法

使用
for file中的行
迭代器和
next
将每隔一行打印一次:

with open(filename) as file:
    for line in file:
        print(line.strip())
        line = next(file,None)

i_行
只是一个常规字符串,不是任何类型的迭代器,尤其与
文件
的内部结构无关。所谓“下一行需要分配给变量”,您的意思是要记录下一行以便以后处理,还是要前进到下一个循环迭代?分配
i_行=iter(文件)
当您将其用作循环变量时,它不会改变
i_行
的解释方式。您可能需要重新了解
for
循环的工作方式。
i_行
只是一个常规字符串,而不是任何类型的迭代器,尤其是与
文件
的内部结构无关“下一行需要分配给变量”,您的意思是要记录下一行以便以后处理,还是要进行下一个循环迭代?分配
i_line=iter(文件)
在将
i\u行
用作循环变量时,不会改变该行的解释方式。您可能需要更新有关
循环如何工作的知识。