SnippetBox

Почему CSV нельзя надёжно разбирать через split

Raw URL

Почему CSV нельзя надёжно разбирать через split

В учебной выгрузке поле с названием товара может содержать запятую: «Блокнот, клетка». Если разбить строку обычным split(","), это название превратится в два столбца. Для первой практики на Python полезно собрать небольшой файл с тремя случаями: обычная строка, значение в кавычках с запятой внутри и пустая ячейка. Задача скрипта - сохранить структуру таблицы во всех трёх случаях.

В стандартной библиотеке для этого есть модуль csv: csv.DictReader связывает значения с заголовками, а параметр delimiter задаёт разделитель конкретного файла. Файл открывают с newline=""; для выгрузки UTF-8 с BOM подходит кодировка utf-8-sig. Разделитель и кодировку нужно выбирать по реальному файлу, а не менять наугад до исчезновения ошибки.

Такое упражнение помогает сформулировать требования к обучению: нужен разбор файлов, обработка ошибок и проверка результата на неудобных данных. В подборке курсов Python на KGAM можно искать программу под автоматизацию и затем уточнить у школы, будет ли преподаватель проверять подобные самостоятельные задачи. Полезный итог урока - скрипт, который корректно читает все три строки, и объяснение, почему наивный способ их ломает.