Python: Odczyt pliku CSV

3-lut-2018

Załóżmy, że w pliku cities.csv znajduje sie następujący tekst

CityName,Number,YesNo
New York,80,0
San Francisco,95,1
Paris,95,0
Rome,100,1

czyli mamy do czynienia ze standardowym plikiem Comma Separated Values (CSV)

Żeby rozpocząć pracę z plikiem CSV zaimportuj najpierw moduł csv. Funkcja, która rzeczywiście wczyta i zinterpretuje plik CSV to csv.reader. Generalnie posiadając przetworzony przez reader plik w zmiennej, właściwie nic więcej nie trzeba. Problemem może być tylko to, że obiekt zwracany przez reader jest iteratorem, czyli można po nim „przejść” tylko jeden raz. Jeśli Twój plan to przetworzenie danych wiele razy i na różne sposoby, to można skonwertować do listy. Dlatego początek programu mógłby wyglądać tak:

import csv
with open('C:\\temp\\cities.csv', newline='') as csvfile:
 content = csv.reader(csvfile, delimiter=',', quotechar='|')
 contentList = list(content)

Jeśli chcesz „przejść” przez ten plik i wyświetlać tylko zerową kolumnę to można to zrobić tak:

print("Just column 0-----------------------")
 for row in contentList:
 print(row[0])
 

a ponieważ dane są zapisane w liście, to iteracja jest możliwa po raz drugi:

print("just column 2-----------------------")
 for row in contentList:
 print(row[1])

Można także pracować z całym wierszem na raz. Ten wiersz to teraz obiekt tuple

print("entire row--------------------------")
 for row in contentList:
 print(row)

a posiadajac listę obiektów tuple, można nawet odwoływać się do poszczególnych wierszy i kolumn, czyli do komórek:

print("specific cell-----------------------")
 print("row 1, column 0", contentList[1][0])

 

Komentarze są wyłączone

Autor: Rafał Kraik