2013-08-24 655 views

回答

31

使用itertools.islice

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

+1最好的方式來做到這一點。 –

+0

@AshwiniChaudhary爲什麼這是最好的方式?因爲'islice'使用了生成器表達式? – thefourtheye

+1

@thefourtheye'islice'是一種從迭代器中獲得切片的快速和pythonic方法,它在迭代器上循環,但是在C速度內部發生。 –

3

如果文件不是很大:

with open('/path/to/file') as f: 
    print f.readlines()[1:15] 
+7

如果文件很大,則會將所有內容加載到內存中。 –

4

Jon's answer絕對是一個更Python和清潔方法。


或者,你可以使用enumerate()

with open("file", 'r') as f: 
    print [x for i, x in enumerate(f) if 1 <= i <= 15] 

注意,這將遍歷文件中的所有行。這是更好地打破環路15號線後,像這樣:

with open("file", 'r') as f: 
    for i, x in enumerate(f): 
     if 1 <= i <= 15: 
      print x 
     elif i > 15: 
      break 
1

我想你可以只讀取行,並把你需要

的那些例如:

file = open("a.txt", "r") 
data = file.readlines() 

現在數據[1]將是第二行,數據[14]將是第15行

您可以將它們放入一個變量中,這就是它

+2

在'with'塊中打開文件。 –

相關問題