все Python 3Файлы и I/Oфункция
csv.reader()
csv — чтение
Читает CSV построчно: возвращает итератор, который отдаёт каждую запись списком строк. Сам разбирает кавычки, запятые внутри полей и экранирование.
Синтаксис
csv.reader(csvfile, dialect='excel', **fmtparams)
Все значения приходят строками, даже числа: '30' нужно превращать в int самому. Файл открывайте с newline='', иначе поле в кавычках с переносом строки внутри разберётся неверно. Не делите строки через split(','): «"Ivanov, Ivan"» разобьётся надвое, а reader вернёт одно поле. Читатель одноразовый, как любой итератор: второй проход даст пустоту.
Примеры
import csv
import io
buf = io.StringIO('name,age\n"Ivanov, Ivan",30\n')
for row in csv.reader(buf):
print(row) # → ['name', 'age'] / ['Ivanov, Ivan', '30']
import csv
with open('data.csv', 'w', newline='', encoding='utf-8') as f:
f.write('a;b\n1;2\n')
with open('data.csv', newline='', encoding='utf-8') as f:
rows = list(csv.reader(f, delimiter=';'))
print(rows) # → [['a', 'b'], ['1', '2']]
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности