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.

    Roman Spiridonov
    Roman Spiridonov

    Привет ! Мне 38 лет, я работаю в области информационных технологий более 4 лет. Тут собрано самое интересное.

    Categories 05.

    © Speccy 2020 / All rights reserved

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