Введение
Вам когда-нибудь приходилось обмениваться информацией между программами, кроме использования переменных? Вы когда-нибудь думали или чувствовали необходимость иметь текстовый файл для обмена данными между программами? У вас есть идея хранить данные/информацию во внешнем файле, а затем извлекать их при необходимости? Да, мы можем хранить и передавать данные между программами, используя формат файла, известный как CSV.
CSV вариант №
Файл CSV — это тип файла, используемый для хранения данных в структурированной табличной форме (строка/столбец). Это обычный текстовый файл и, как следует из его названия, хранит значения, разделенные запятой.
В этой статье мы подробно обсудим чтение, запись и анализ файла CSV в Python.
Источник CSV-файла
Концепция файла CSV родилась из-за необходимости экспортировать большие объемы данных из одного места в другое (программы). Например, импортируя большие данные электронной таблицы и экспортируя их в базу данных. Точно так же мы можем экспортировать большие объемы данных в программы.
Разные языки используют разные форматы для хранения данных, поэтому, когда программистам нужно экспортировать данные из одной программы в другую, они почувствовали потребность в каком-то универсальном типе файла для передачи больших объемов данных; Тип файла, который любая программа может читать и анализировать в своем собственном формате.
Понимать структуру CSV-файла
Структура CSV-файла будет выглядеть следующим образом:
Column 1, Column 2, Column 3
Value 1, Value 2, Value 3...,...,...
Так же, как у нас есть столбцы и строки в базе данных:
Или в табличных данных электронной таблицы:
Точно так же файл CSV представляет собой текстовый файл простого типа, в котором данные хранятся в виде фрагментов, разделенных запятой:
Каждый столбец отделяется запятой, а каждая строка находится в новой строке.
Что ж, после понимания основной концепции, происхождения и структуры файла CSV давайте научимся читать, писать и анализировать CSV в Python.
Чтение CSV-файла в Python
К счастью, для анализа файлов CSV у нас есть встроенная библиотека CSV, предоставляемая Python. Библиотека CSV действительно проста в использовании и может использоваться как для чтения, так и для записи в файл CSV. Начнем с чтения файла CSV.
Для чтения файла CSV будет использоваться объект читателя. Давайте начнем писать код для чтения файла CSV и понимания его в пошаговой процедуре:
Чтение файла CSV с разделителем по умолчанию (запятая)
Прежде всего, нам нужно импортировать модуль CSV:
import csv
После импорта модуля CSV мы теперь можем использовать его в нашей программе Python.
Далее нам нужно открыть файл CSV с помощью функции open()
в режиме чтения:
with open('students.csv', 'r') as csvfile
После чтения файла CSV создайте объект чтения CSV:
csvreader = csv.reader(csvfile)
Поскольку запятая является разделителем по умолчанию, нет необходимости специально указывать ее. Если нет, нам нужно указать разделитель, используемый файлом CSV.
Наконец, чтобы извлечь каждую строку, используйте цикл for, чтобы перебрать объект csvreader и распечатать их:
for student in csvreader:
print(student)
В целом окончательный код будет выглядеть так:
import csv
with open('students.csv', 'r') as csvfile
csvreader = csv.reader(csvfile)
for student in csvreader:
print(student)
Как только весь код будет написан, запустите код, и вы получите весь CSV-файл, проанализированный в массив python:
Чтение CSV-файла с настраиваемым разделителем
Чтобы прочитать файл CSV с настраиваемым разделителем, нам просто нужно указать разделитель при чтении и создании объекта чтения CSV.
Например, если поставить точку с запятой (;) вместо запятой в файле student.csv:
И вы хотите прочитать файл CSV на основе точки с запятой, разделитель будет упомянут как:
csvreader = csv.reader(csvfile, delimiter = ';')
Окончательный код с указанным разделителем будет выглядеть так:
import csv
with open('students.csv', 'r') as csvfile
csvreader = csv.reader(csvfile, delimiter = ';')
for student in csvreader:
print(student)
Вывод будет таким же, как и в предыдущем примере:
Вот как мы можем предоставить собственный разделитель и прочитать файл CSV в Python. Теперь давайте узнаем, как написать CSV-файл на Python.
Написание CSV-файла на Python
Для записи файла CSV будет использоваться объект записи. Существует два способа записи CSV-файла:
- Запишите строки одну за другой с помощью функции
writerow()
- Напишите несколько строк, используя
writerows()
Давайте начнем писать код для записи CSV-файла и лучше поймем оба способа:
Как написать файл CSV с помощью функции writerow() в Python
Используя эту writerow()
, мы можем записывать только одну строку за раз в файл CSV.
Например, чтобы записать три строки в новый файл employee.csv, python будет выглядеть так:
import csv
with open('employees.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["ID", "Name", "Age"])
writer.writerow([1, "John", 35])
writer.writerow([2, "Harry", 25])
Приведенный выше код создаст файл с именем employee.csv и добавит в него три строки:
Однако этот метод становится неэффективным, когда нам приходится добавлять сотни строк. В этих случаях нам приходится добавлять каждую строку одну за другой, что становится утомительной работой. Чтобы решить эту проблему, Python также предоставляет функцию writerows()
для одновременной записи множества строк в CSV-файл.
Напишите несколько строк, используя функцию writerows()
Используя writerows()
, мы можем просто передать массив array(rows)
в writerows()
и она добавит все строки в файл CSV.
Например, чтобы записать три строки в файл dipendenti.csv
, мы сначала создаем массив с именем «employees.csv», который содержит строки в виде элементов массива, а затем мы передаем массив «employees.csv» для функции writerows()
.
В общем, питон будет выглядеть так:
import csv
with open('employees.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["ID", "Name", "Age"])
writer.writerow([1, "John", 35])
writer.writerow([2, "Harry", 25])
Приведенный выше код создаст файл с именем employee.csv и добавит три строки в этот файл employee.csv, как это было сделано для предыдущей процедуры:
Используя этот метод, вы можете быстро добавить тысячи строк в CSV-файл, предоставив данные в виде массива.
Вывод
CSV — это формат данных, используемый для хранения данных в табличном формате и их передачи между различными приложениями. Python имеет встроенный режим, который позволяет коду читать, записывать и анализировать данные CSV в коде Python.
В этом посте мы узнали, как читать и записывать данные в виде CSV-файла с помощью Python.