OOP-csv-editor

Разобрать формат хранения данных "csv" Разобраться с модулем csv (стандартный пакет), разобраться с функциями reader, writer данного модуля.

Описать класс, для импорта и экспорта файлов в csv формате. Предоставить необходимые атрибуты и методы для работы с данными. Конструктор класса принимает три аргумента: первый аргумент - обязательный, принимает объект файла; Второй аргумент со значением по умолчанию, который принимает разделитель и имеет значение по умолчанию ";" Третий аргумент - аргумент со значением по умолчанию, кодировка файла, значение по умолчанию 'cp1251'

Организовать следующие методы взаимодействия: len_column - возвращает количество столбиков таблицы. len_lines - возвращает количество строк таблицы. get_headers - вернуть список заголовков колонок. get_column - принимает аргумент в виде номера или заголовка колонки, возвращает список записей в данножй колонке, начиная с заголовка колонки. get_line - принимает аргумент, в виде номера строки таблицы, возвращает список записей в указанной строке. get_cells - принимает номер колонки и строки в виде списка из двух элементов, где первое значение - номер колонки, второе - номер строки. Может принимать *args подобных запросов и возвращать список значений, по указанным координатам. add_header - принимает аргумент в виде имени заголовка для новой колонки, вторым, необязательным, аргументом, принимает номер для новой колонки. По умолчанию, колонка создается в последней Т.Е. правой. Все значения для новой колонки, забиваются типом пустой строки ''. Учитываем, что '' - это пустое значение в csv файле Т.Е. ;; - между ними мы предполагаем ''. set_cell - принимает аргумент, в виде списка из двух значений для колонки и строчки или в виде списка из двух значений, где первое значение - имя колонки, второе - номер строки; вторым аргументом принимает значение для ячейки и устанавливает его. Не разрешает изменять первую строку, где находятся заголовки.

add_line - принимает список значений для строки и номер строки, где нужно вставить новую строку. Если какую-то ячейку нужно пропустить, в списке будет стоять значение ''. По умолчанию добавляет строку в конец. save - сохраняет текущее состояние в объект файла, с указанным разделителем и в указанной кодировке.