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行
用作循环变量时,不会改变该行的解释方式。您可能需要更新有关循环如何工作的知识。