2016-01-02 28 views
5

Sto imparando come leggere i file CSV usando Python 3, e ho giocato con il mio codice e sono riuscito a leggere l'intero documento o certe colonne, tuttavia sto cercando di leggere ora solo alcuni record che contengono un determinato valore.Leggere un file CSV usando Python 3

Ad esempio, voglio leggere tutti i record in cui la macchina è blu, come faccio a leggere solo quei record? Non riesco a capirlo e sarei grato per qualsiasi aiuto o guida!

import csv 

with open('Cars.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader: 
    print(row['ID'] ,row ['Make'],row ['Colour']) 
+0

Eventuali duplicati di [Come faccio a leggere e scrivere file CSV con Python?] (Http://stackoverflow.com/questions/41585078/how-do-i-read-and-write-csv-files -with-python) –

risposta

6

Una semplice istruzione "se" dovrebbe essere sufficiente. Vedi i documenti control flow.

import csv 

with open('Cars.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader: 
     if row['Colour'] == 'blue': 
      print(row['ID'] ,row ['Make'],row ['Colour']) 
+0

Grazie! Sono sinceramente imbarazzato per un momento così felice – user5508371

0

Leggere ogni riga una per una e utilizzare un controllo esplicito per filtrare quelli che si desidera gestire. Quindi aggiungili ad un array, ad esempio, o elaborali sul posto.

+0

Come farei questo? – user5508371

1

È possibile controllare i valori durante la lettura delle righe.

with open('Cars.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader: 
    // check your values here - if car = blue 
    // do something with blue cars. 
    print(row['ID'] ,row ['Make'],row ['Colour']) 
Problemi correlati