作为跳过包含字符串的空白行和行的方式,前进一个文件对象多行

时间:2015-01-18 23:55:15

标签: python file iteration next

next()迭代到文件中的下一行,但如果要迭代2或3行然后读取该文件,该怎么办呢?示例:假设您要为文件中的金额添加数字。但是为了达到那个数字,你必须跳过一个包含两行只是字母的文件。

我尝试了类似amount = next(); next()的内容,但是没有用,或者我使用的不正确。

有什么想法吗?

2 个答案:

答案 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)