next()
迭代到文件中的下一行,但如果要迭代2或3行然后读取该文件,该怎么办呢?示例:假设您要为文件中的金额添加数字。但是为了达到那个数字,你必须跳过一个包含两行只是字母的文件。
我尝试了类似amount = next(); next()
的内容,但是没有用,或者我使用的不正确。
有什么想法吗?
答案 0 :(得分:2)
例如
def skip_n_items(n, iterator):
for _ in range(n): next(iterator)
然后当你想“跳过2行然后获得第三行”
skip_n_items(2, thefile)
amount = next(thefile)
(例如,在with open('the.file') as thefile:
区块内)。
答案 1 :(得分:1)
要推进多行,请在循环中调用next
:
for _ in range(times_to_advance):
next(file_object)
正如@MartijnPieters在评论中指出的那样,这种解决方案并不是特别有效。它的主要优点是简单。
如果主要关注的是性能问题,则应使用itertools
文档的consume()
recipe中的代码:
from itertools import islice
next(islice(file_object, times_to_advance, times_to_advance), None)