Почему при чтении CSV через модуль csv часто пишут open("data.csv", "r", encoding="utf-8", newline="")?
AЧтобы
csv корректно обрабатывал переводы строк и не создавал лишние пустые строки/сдвигиBЧтобы автоматически преобразовывать все числа в
intCЧтобы
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()?Ещё вопросы по теме «Работа с файлами: JSON и CSV»
- Вы сохраняете результат анализа в файл отчёта. Что произойдёт, если выполнить `open("report.csv", "w")`, когда `report.csv` уже существует?
- Что гарантирует конструкция `with open("data.csv", "r") as f:` при чтении файла?
- Есть строка `text = '{"user_id": 7, "active": true}'`. Что вернёт `json.loads(text)`?
- Вы читаете CSV с заголовком через `csv.DictReader(f)`. Что представляет собой `row` внутри цикла `for row in csv.DictReader(f):`?
- Вы хотите дописывать строки в файл лога `errors.log`, не удаляя то, что уже записано. Как открыть файл?
- Все вопросы по «Работа с файлами: JSON и CSV» →