Почему при чтении CSV через модуль csv часто пишут open("data.csv", "r", encoding="utf-8", newline="")?

AЧтобы csv корректно обрабатывал переводы строк и не создавал лишние пустые строки/сдвиги
BЧтобы автоматически преобразовывать все числа в int
CЧтобы csv.reader автоматически пропускал строку заголовка
DЧтобы включить режим добавления данных a
Правильный ответ. Параметр newline="" помогает модулю csv правильно обрабатывать строки.

Разбор

Модуль csv ожидает, что управление переводами строк будет сделано корректно, поэтому часто рекомендуют открывать файл с newline="". Это особенно полезно для кроссплатформенной работы, чтобы избежать лишних пустых строк или некорректного разбиения строк при чтении/записи CSV. Также обычно задают encoding="utf-8", чтобы одинаково читать файлы с не-ASCII символами.

Проверь себя · 1/3разбор после ответа
Что будет в переменной second после выполнения with open("users.csv", "r", encoding="utf-8") as f: first = f.read(); second = f.read()?
Тренировать Python в Telegram

Ещё вопросы по теме «Работа с файлами: JSON и CSV»