Олег Марков
Работа с CSV в Python
Введение
CSV (Comma-Separated Values) — один из самых распространённых форматов для хранения табличных данных. Работа с CSV файлами позволяет обмениваться информацией между приложениями, хранить данные в удобной для анализа форме и быстро обрабатывать их в Python. В этой статье мы разберём практические подходы к работе с CSV в Python.
Чтение CSV с помощью модуля csv
Python предоставляет встроенный модуль csv для работы с CSV файлами. Открытие и чтение файла происходит следующим образом:
import csv
with open("data.csv", newline="", encoding="utf-8") as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)Каждая строка файла превращается в список, где элементы разделены запятыми.
Для более глубокого понимания работы с CSV файлами, чтения и обработки табличных данных в Python, полезно изучить системный подход к работе с языком. Если вы хотите детальнее погрузиться в Python — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажёры для практики 24/7, решение задач с живым ревью наставников и еженедельные встречи.
Запись CSV файлов
Для записи данных в CSV используется csv.writer:
import csv
data = [
["Имя", "Возраст", "Город"],
["Иван", 25, "Москва"],
["Анна", 30, "Санкт-Петербург"]
]
with open("output.csv", "w", newline="", encoding="utf-8") as csvfile:
writer = csv.writer(csvfile)
writer.writerows(data)Каждый вложенный список записывается как отдельная строка CSV файла.
Чтение и запись с использованием словарей
Модуль csv позволяет работать с CSV как с таблицей с заголовками с помощью DictReader и DictWriter:
import csv
# Чтение
with open("data.csv", newline="", encoding="utf-8") as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row["Имя"], row["Возраст"])
# Запись
with open("output_dict.csv", "w", newline="", encoding="utf-8") as csvfile:
fieldnames = ["Имя", "Возраст", "Город"]
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({"Имя": "Мария", "Возраст": 28, "Город": "Казань"})Использование словарей упрощает доступ к данным по имени столбца, что особенно удобно для больших CSV таблиц.
Частые ошибки
- Неправильное указание кодировки приводит к
UnicodeDecodeError. - Забытие аргумента
newline=""может вызвать пустые строки между записями в Windows. - Ошибки при работе с заголовками без использования
DictReaderилиDictWriter.
Частозадаваемые вопросы
Как прочитать только определённые столбцы CSV файла?
Использовать DictReader и обращаться к нужным ключам словаря.
Как добавить строку в существующий CSV файл?
Открыть файл в режиме "a" и использовать writer.writerow().
Как обрабатывать CSV с другой кодировкой?
Указать нужную кодировку через параметр encoding при открытии файла.
Заключение
Работа с CSV в Python включает чтение и запись файлов, использование списков и словарей для обработки данных, а также работу с различными режимами открытия файлов. Это позволяет эффективно управлять табличными данными и интегрировать их в приложения.
Для системного изучения работы с CSV файлами и закрепления практики рекомендуется курс Основы Python. В первых трёх модулях доступно бесплатное содержание, что позволяет попробовать чтение и запись CSV на практике и оценить структуру курса.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев