Share This
Связаться со мной
Крути в низ
Categories
//Чтение файлов в формате CSV в Python

Чтение файлов в формате CSV в Python

04.07.2021Category : Python

Перевод статьи «Python Read CSV Tutorial».

CSV расшифровывается как «Comma Separated Values», т.е. «значения, разделенные запятыми». Это самый простой способ хранения данных в виде обычного текста. Данные представлены в табличной форме, где каждая строка является строкой записи таблицы. Сегодня мы поговорим про чтение формата CSV в Python. Расскажем о различных функциях для работы с CSV-файлами, а также о том, как создать свой файл CSV.

Чтение CSV-файла при помощи csv.reader(). Метод 1

Пример 1. Использование запятой в качестве разделителя

Допустим, у нас есть файл с именем sample1, содержащий некоторые данные. Такой файл можно создать с помощью любого текстового редактора или путем передачи значений в какую-нибудь программу для записи файла CSV. Как это делается, мы расскажем чуть позже.

Текст в этом файле разделен запятыми. Наши данные — сведения о различных книгах (порядковый номер, название, имя автора).

chtenie fajlov v formate csv v python 3a3ba8b - Чтение файлов в формате CSV в Python

Переходим к коду. Чтобы прочитать файл CSV, нам нужен объект reader для выполнения функции чтения. Первым делом импортируем модуль csv (встроенный модуль Python). Далее укажем имя файла, который нужно открыть (или путь к нему). Затем инициализируем объект reader. Он будет перебираться в цикле for.

reader = csv.reader(файл)

Данные из указанного файла выводятся построчно.

chtenie fajlov v formate csv v python bd9c018 - Чтение файлов в формате CSV в Python

Запустим наш код. Можем увидеть, что наши данные автоматически преобразовались в списки, состоящие из элементов данных каждой строки.

Пример 2. Использование табуляции в качестве разделителя

В первом примере текст разделяется запятой. Однако мы можем сделать наш код более настраиваемым, добавив различные функции.

Возьмём код из предыдущего примера и сделаем лишь одно изменение: напрямую укажем разделитель (delimiter). В предыдущем примере не было никакой необходимости его указывать, потому что запятая — разделитель по умолчанию.

reader = csv.reader(file, delimiter = ‘t’)

chtenie fajlov v formate csv v python caf59b4 - Чтение файлов в формате CSV в Python

Как видите, результат немного изменился. Теперь все элементы строки являются одним элементом списка. Так произошло потому, что в этот раз мы указали в качестве разделителя не запятую, а t.

Чтение CSV-файла при помощи csv.reader(). Метод 2

Теперь давайте обсудим альтернативный метод чтения файлов CSV. Предположим, у нас есть файл sample5, сохраненный с расширением .csv. В файле сохранены данные об учениках, их именах, классе и предметах.

chtenie fajlov v formate csv v python 81e1679 - Чтение файлов в формате CSV в Python

Теперь перейдем к коду. Первый шаг такой же, как и в прошлый раз – импорт модуля. Затем укажем путь или имя файла, который необходимо открыть и использовать.

Этот код является примером одновременного чтения и изменения данных. Мы инициализируем два массива для будущего использования в этом коде. Затем открываем файл с помощью функции open(). Далее инициализируем объект, как мы это делали в приведенных выше примерах. Здесь снова используется цикл for.

Следующая функция сохраняет текущее значение строк и пересылает объект для следующей итерации:

fields = next(csvreader)

chtenie fajlov v formate csv v python 287a300 - Чтение файлов в формате CSV в Python

Все строки добавляются к списку с именем rows.

rows.append(row)

Если мы хотим увидеть общее количество строк, вызовем следующую функцию вывода.

print(“total rows are: %d “%(csvreader.line_num))

Чтобы вывести заголовок столбца или имя поля, используем функцию, в которой к тексту (с помощью метода .join()) присоединяются все заголовки.

После выполнения вы можете увидеть результат, в котором каждая строка напечатана с полным описанием и текстом, который мы добавили с помощью кода во время выполнения.

Использование DictReader

Эта функция используется для вывода данных из текстового файла в виде словаря.

У нас есть файл sample7.txt со следующими данными об учениках.

chtenie fajlov v formate csv v python 42980bd - Чтение файлов в формате CSV в Python

Примечание. Не обязательно сохранять файл с расширением .csv, можно и в других форматах. Главное, чтобы в самом файле использовался простой текст и данные оставались в первозданном виде.

Теперь воспользуемся приведенным ниже кодом, чтобы прочитать данные и вывести их в формате словаря. Вся методика одинакова, только вместо reader используется DictReader.

csv_file = csv.DictReader(file)

chtenie fajlov v formate csv v python e916abb - Чтение файлов в формате CSV в Python

Во время выполнения можно видеть, что данные печатаются в виде словаря. Данная функция преобразует каждую строку в словарь.

Пробелы в файлах CSV

Каждый раз при использовании csv.reader() мы автоматически получаем пробелы в выводе. Чтобы удалить эти лишние пробелы из вывода, нам нужно использовать функцию reader(), указав при этом специальный параметр. Предположим, файл содержит следующие данные, касающиеся информации о сотруднике.

chtenie fajlov v formate csv v python af2b16b - Чтение файлов в формате CSV в Python

reader = csv.reader(file, skipinitialspace = True)

Укажем значение skipinitialspace, равное True. Благодаря этому неиспользуемое свободное пространство удаляется из вывода.

chtenie fajlov v formate csv v python 391e637 - Чтение файлов в формате CSV в Python

Модуль CSV и диалекты

Если мы начнем работать, используя одни и те же файлы csv с форматами функций в коде, это сделает код очень некрасивым и непоследовательным. Модуль CSV помогает использовать метод диалектов в качестве опции для удаления избыточности данных.

Рассмотрим в качестве примера те же исходные данные, но на этот раз разделенные символом |. Мы хотим удалить этот символ, пропустить лишний пробел и использовать одинарные кавычки между соответствующими данными.

chtenie fajlov v formate csv v python 46b972c - Чтение файлов в формате CSV в Python

Используя следующую строчку кода, мы получим желаемый результат

csv.register_dialect(‘myDialect’, delimiter =’|’, skipinitialspace=True, quoting= csv.QUOATE_ALL)

Эта строка отличается, поскольку она определяет три основные функции, которые необходимо выполнить. Из выходных данных вы можете видеть, что символ | удаляется, и также добавляются одинарные кавычки.

chtenie fajlov v formate csv v python b9ee571 - Чтение файлов в формате CSV в Python

Написание своего CSV-файла

Чтобы открыть файл csv, нам нужно его где-то взять. Если его нет, можно создать такой файл с помощью следующей функции.

Для начала импортируем модуль csv. Затем дадим имя файлу, который хотим создать. Для добавления данных мы будем использовать следующий код:

writer = csv.writer(file) writer.writerow(……)

Данные вводятся в файл построчно, поэтому следует использовать именно этот оператор.

chtenie fajlov v formate csv v python cb48667 - Чтение файлов в формате CSV в Python

Заключение

В этой статье мы разобрали тему чтения формата CSV в Python. Мы показали, как вывести данные с помощью различных методов, в виде словарей или списков. Также мы рассказали, как удалить лишние пробелы и специальные символы из данных.

chtenie fajlov v formate csv v python cd7f650 - Чтение файлов в формате CSV в Python

Хотите решать больше задач по Python

Подписывайтесь на нас в Телеграм

Подписаться ×

  • 2 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close