在Python文件中读取行时跳过前几行

O.r*_*rka 53 python file skip lines

我想在阅读文本文件时跳过前17行.

假设文件看起来像:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
good stuff
Run Code Online (Sandbox Code Playgroud)

我只想要好东西.我正在做的事情要复杂得多,但这是我遇到麻烦的部分.

wim*_*wim 104

使用切片,如下所示:

with open('yourfile.txt') as f:
    lines_after_17 = f.readlines()[17:]
Run Code Online (Sandbox Code Playgroud)

如果文件太大而无法加载到内存中:

with open('yourfile.txt') as f:
    for _ in range(17):
        next(f)
    for line in f:
        # do stuff
Run Code Online (Sandbox Code Playgroud)

  • 问题是,您需要在行号~4e6之前读取整个内容,以便知道行分隔符字节的位置,否则您不知道已经传递了多少行.没有办法神奇地跳到一个行号.~250 MB应该可以读取整个文件到内存,这不是特别大的数据. (2认同)

Ism*_*awi 30

使用itertools.islice,从索引17开始.它将自动跳过17个第一行.

import itertools
with open('file.txt') as f:
    for line in itertools.islice(f, 17, None):  # start=17, stop=None
        # process lines
Run Code Online (Sandbox Code Playgroud)