在Python中从第二行开始读取文件

4

我使用 Python,但不知道该怎么做。

我想要读取文件中的许多行,但我必须从第二行开始读取。所有文件都有不同的行数,所以我不知道该怎么做。

代码示例是从第一行读到第16行。但我必须从第二行开始读取文件,一直读到最后一行。谢谢!:)

with open('filename') as fin:
  for line in islice(fin, 1, 16):
    print line

2
读取第一行并丢弃它。然后读取文件的其余部分。 - DYZ
3个回答

10

您应该能够调用next并丢弃第一行:

with open('filename') as fin:
    next(fin) # cast into oblivion
    for line in fin:
        ... # do something

由于 fin 是一个生成器,所以这很简单易懂。


4
with open("filename", "rb") as fin:
    print(fin.readlines()[1:])

虽然这段代码可以解决OP的问题,但最好还是附上一些最少量的信息。其他人阅读这个问题时可能不熟悉代码中的所有内容或背后的思想。 - FlyingTeller

1

查看islice的文档:

itertools.islice(iterable, stop)
itertools.islice(iterable, start, stop[, step])

创建一个迭代器,从可迭代对象中返回选定的元素。如果start不为零,则跳过可迭代对象中的元素,直到达到start。之后,连续返回元素,除非设置的步长step大于一,这将导致跳过项目。如果stop为None,则迭代继续,直到迭代器耗尽,如果有的话;否则,停止在指定位置。与常规切片不同,islice()不支持start、stop或step的负值。可以用于从已展平内部结构的数据中提取相关字段(例如,多行报告可能在每三行上列出一个名称字段)。

我认为你只需告诉它从第二行开始迭代到末尾即可。例如:

with open('filename') as fin:
    for line in islice(fin, 2, None):  # <--- change 1 to 2 and 16 to None
        print line

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接