Python Glossary English

все 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Сообщить о неточности