Ho un file di testo e ho bisogno di leggere dalla riga dei secondi fino alla 15a riga incluso. Ho provato alcuni metodi ma nessun metodo ha funzionato per me ... Sarei felice se qualcuno potesse aiutarmi ... grazie mille!Python ha letto il file di testo dalla seconda riga al 15
risposta
Uso itertools.islice
:
from itertools import islice
with open('filename') as fin:
for line in islice(fin, 1, 16):
print line
Se il file non è molto grande:
with open('/path/to/file') as f:
print f.readlines()[1:15]
Se il file è enorme, questo caricherà tutto in memoria. –
Jon's answer è sicuramente un approccio più divinatorio e pulito.
In alternativa, è possibile utilizzare enumerate()
:
with open("file", 'r') as f:
print [x for i, x in enumerate(f) if 1 <= i <= 15]
Nota, che questo ciclo volontà su tutte le righe di un file. E 'meglio per rompere il ciclo dopo la linea 15, in questo modo:
with open("file", 'r') as f:
for i, x in enumerate(f):
if 1 <= i <= 15:
print x
elif i > 15:
break
Penso che si può solo leggere le righe e prendere quelle che ti servono
Ad esempio:
file = open("a.txt", "r")
data = file.readlines()
ora dati [1] saranno seconda linea e dei dati [14] saranno 15
si possono mettere in una variabile e questo è tutto
Apri file in un blocco 'with'. –
+1 modo migliore per farlo. –
@AshwiniChaudhary Perché è il modo migliore? Perché 'islice' usa le espressioni del generatore? – thefourtheye
@thefourtheye 'islice' è un modo veloce e pignolo per ottenere una porzione da un iteratore, esegue loop sull'iteratore ma ciò avviene internamente alla velocità C. –