2013-08-24 18 views
7

Bir metin dosyasına sahibim ve saniyeler içinde satır satırını da dahil olmak üzere 15 satırına eklemem gerekiyor. Bazı yöntemler denedim ama benim için hiçbir yöntem işe yaramadı ... Bana yardım edebilecek biri olursa ben memnun olurum ... çok teşekkürler!Python metin dosyasını ikinci satırdan okunan

cevap

31

Kullanım itertools.islice:

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

+1 bunu yapmanın en iyi yolu. –

+0

@AshwiniChaudhary Neden bu en iyi yol? Çünkü 'islice' jeneratör ifadelerini kullanıyor? – thefourtheye

+1

@thefourtheye 'islice' bir yineleyiciden bir dilim almak için hızlı ve pythonik bir yoldur, Yineleyici üzerinde döngüler yapar ancak dahili olarak C hızında gerçekleşir. –

3

dosya çok büyük değilse:

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

Dosya büyükse, bu her şeyi belleğe yükler. –

4

Jon's answer kesinlikle bir daha pythonic ve temiz bir yaklaşımdır.


Alternatif olarak, enumerate() kullanabilirsiniz:

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

Not, bu dosyadaki tüm hatlar üzerinden bu şekilde döngü. Böyle, 15 satırdan sonra döngüyü kırmak için iyidir:

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

Ben sadece satırları okuyup olanları Örneğin

gerek alabilir düşünüyorum: Şimdi

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

veriler [1] ikinci satır olacak ve veriler [14] 15

olacaktır. Bunları bir değişkene koyabilirsiniz ve bu,

+2

Dosyaları "with" bloğunda açın. –