2016-01-02 22 views
5

Uczę się odczytywać pliki CSV za pomocą Pythona 3 i bawiłem się z moim kodem i udało mi się odczytać cały dokument lub pewne kolumny, jednak staram się teraz czytać tylko niektóre rekordy, które zawierają określoną wartość.Czytanie pliku CSV przy użyciu Python 3

Na przykład chcę przeczytać wszystkie zapisy, w których samochód jest niebieski, w jaki sposób mogę odczytać tylko te zapisy? Nie mogę tego zrozumieć i byłbym wdzięczny za jakąkolwiek pomoc lub wskazówki!

import csv 

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

Możliwy duplikat [W jaki sposób odczytywać i zapisywać pliki CSV z Python?] (Http://stackoverflow.com/questions/41585078/how-do-i-read-and-write-csv-files -with-python) –

Odpowiedz

6

Proste wyrażenie "jeśli" powinno wystarczyć. Zobacz dokumentację 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

Dziękujemy! Naprawdę jestem zawstydzony takim morderczym momentem – user5508371

0

Czytasz każdy wiersz jeden po drugim i używasz wyraźnego czeku do filtrowania tych, z którymi chcesz się uporać. Następnie dodaj je do tablicy lub przetwórz na miejscu.

+0

Jak to zrobić? – user5508371

1

Możesz sprawdzić wartości podczas czytania wierszy.

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']) 
Powiązane problemy