2013-02-03 14 views
18

Eventuali duplicati: When processing CSV data, how do I ignore the first line of data?Salta la prima riga (campo) in loop usando il file CSV?

Sto usando Python per aprire il file CSV. Sto usando il ciclo delle formule, ma ho bisogno di saltare la prima riga perché ha l'intestazione.

Finora ricordo che fosse qualcosa del genere ma manca qualcosa: mi chiedo se qualcuno conosce il codice per quello che sto cercando di fare.

for row in kidfile: 
    if row.firstline = false: # <====== Something is missing here. 
     continue 
    if ...... 
+0

Perché qualcuno dovrebbe mostrarti ma non lasciarti prendere appunti, e perché è rilevante per la tua domanda? – danodonovan

risposta

37

Probabilmente si desidera qualcosa di simile:

firstline = True 
for row in kidfile: 
    if firstline: #skip first line 
     firstline = False 
     continue 
    # parse the line 

Un altro modo per achive lo stesso risultato sta chiamando readline prima del ciclo:

kidfile.readline() # skip the first line 
for row in kidfile: 
    #parse the line 
+3

La funzione 'next' è un approccio molto più conciso. – vaerek

73

Ci sono molti modi per saltare il primo linea. Oltre a quelli detto da Bakuriu, vorrei aggiungere:

with open(filename, 'r') as f: 
    next(f) 
    for line in f: 

e:

with open(filename,'r') as f: 
    lines = f.readlines()[1:] 
15

csvreader.next() Restituisce la riga successiva di oggetto iterabile del lettore come un elenco, analizzato in base alle l'attuale dialetto.

+4

In python3, il metodo è 'reader .__ next __()', che dovrebbe essere chiamato usando 'next (reader)' – travc

Problemi correlati