如何在不读取python中的整个文件的情况下读取文件的四个特定行?

时间:2016-04-26 02:27:31

标签: python

我需要在python中读取文件的4个特定行。我不想读取所有文件,然后从中获取四个(为了menory)。有谁知道这是怎么做到的吗? 谢谢!

P上。 S.我使用了以下代码,但显然它读取了所有文件,然后从中取出4个。

a=open("file", "r")
b=a.readlines() [c:d]

2 个答案:

答案 0 :(得分:2)

你必须至少阅读你感兴趣的行......你可以使用islice来获取切片

interesting_lines = list(itertools.islice(a,c,d))

但它仍然会读到这些行

答案 1 :(得分:0)

至少在Mac和Windows以及Linux和其他UNIX系统上,文件只是字节流;没有" line"在文件结构中,只是碰巧代表换行符的字节。因此,在文件中找到第N行的唯一方法是从头开始阅读,直到找到(N-1)换行符。您不必存储您扫描的所有内容,但您必须阅读它。

然后你必须从那一点开始阅读和存储,直到找到另外4个换行符。

你可以用Python做到这一点,但我不清楚它与使用直读方法相比是一场胜利,而这种方法的阅读量超过了它的需要;对我来说感觉就像是过早优化。