Основы работы с CSV-файлами в Python
CSV (Comma-Separated Values, значения, разделенные запятыми) - это популярный формат файлов, используемый для хранения и обмена табличными данными. В Python встроенный модуль csv
предоставляет простой способ работы с CSV-файлами.
Что такое CSV-файл?
CSV-файл - это текстовый файл, который хранит данные в табличном формате, где каждая строка представляет запись, а каждая колонка - поле или атрибут. Значения в каждой строке разделяются разделителем, обычно запятой (,
), но могут использоваться и другие разделители, такие как точка с запятой (;
) или табуляция (\t
).
Вот пример простого CSV-файла:
Name,Age,City
John,25,New York
Jane,30,London
Bob,35,Paris
Чтение CSV-файлов в Python
Для чтения CSV-файла в Python можно использовать функцию csv.reader()
из модуля csv
. Эта функция принимает итерируемый объект (например, файловый объект) и возвращает объект-читатель, по которому можно итерироваться, чтобы получить доступ к данным.
import csv
with open('data.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
Этот код выведет каждую строку CSV-файла в виде списка значений.
Запись в CSV-файлы в Python
Для записи данных в CSV-файл можно использовать функцию csv.writer()
. Эта функция принимает итерируемый объект (например, файловый объект) и возвращает объект-писатель, с помощью которого можно записывать строки данных в файл.
import csv
data = [['Name', 'Age', 'City'],
['John', 25, 'New York'],
['Jane', 30, 'London'],
['Bob', 35, 'Paris']]
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
Этот код создаст новый CSV-файл с именем output.csv
с данными, указанными в списке data
.
Обработка кодировок CSV-файлов
По умолчанию модуль csv
в Python предполагает, что CSV-файл закодирован в формате UTF-8. Однако, если файл закодирован в другом формате, может потребоваться указать кодировку при открытии файла.
import csv
with open('data.csv', 'r', encoding='latin-1') as file:
reader = csv.reader(file)
for row in reader:
print(row)
В этом примере файл открывается с кодировкой 'latin-1'
.