Сообщить об ошибке.

Объект чтения CSV файла

Объект чтения Reader - это экземпляры класса csv.DictReader() и объекты, возвращаемые функцией csv.reader(), которые имеют следующие открытые методы и атрибуты:

Синтаксис:

import csv

reader = csv.reader()
reader = csv.DictReader()

Содержание:


reader.__next__():

Метод reader.__next__ возвращает следующую строку объекта чтения проанализированную в соответствии с текущим диалектом csv.Dialect.

Строка будет в виде списка, если объект был возвращен из csv.reader() или словаря dict, если это экземпляр csv.DictReader().

reader.dialect:

Атрибут reader.dialect доступный только для чтения, представляет собой описание диалекта, используемого синтаксическим анализатором.

reader.line_num:

Атрибут reader.line_num возвращает количество строк, прочитанных из исходного итератора. Это не то же самое, что количество возвращаемых записей, поскольку записи могут занимать несколько строк.

reader.fieldnames:

Атрибут reader.fieldnames имеет только объект csv.DictReader().

Если этот параметр не передается в качестве параметра fieldnames при создании объекта чтения, то этот атрибут инициализируется при первом доступе или при чтении первой записи из файла CSV.

Примеры использования:

import csv

# сначала запишем файл 'names.csv',
# который потом прочитаем
with open('names.csv', 'w', newline='') as csvfile:
    fieldnames = ['first_name', 'last_name']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
    writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
    writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

# читаем CSV файл и смотрим как 
# работают атрибуты и метод.
csvfile = open('names.csv', newline='')
reader = csv.DictReader(csvfile)
print('Диалект: ', reader.dialect)
print('Следующая строка: ', reader.__next__())
print('Прочитано строк: ', reader.line_num)
print('Имена полей: ', reader.fieldnames)
csvfile.close()

# Диалект:  excel
# Следующая строка:  OrderedDict([('first_name', 'Baked'), ('last_name', 'Beans')])
# Прочитано строк:  2
# Имена полей:  ['first_name', 'last_name']