У меня есть куча файлов CSV для ежедневной обработки. Они имеют постоянную форму с 19 COMMAS, чтобы появиться в каждом файле. В файле есть смесь строк, временных отметок, целых чисел и чисел с плавающей запятой. Файл всегда заканчивается набором CR-LF.
Каждый файл имеет только одну строку этого текста, которая предоставляет набор информации, которая затем обрабатывается позже.
Проблема возникает из-за того, что время от времени (раз в 1000 файлов) устройство, которое отвечает за создание этого файла, создает НЕПРАВИЛЬНЫЙ файл. Некоторая информация отсутствует.
Мне нужно отделить эти файлы от всех хороших файлов, прежде чем обрабатывать их дальше.
Потратив некоторое значительное количество времени, пытаясь найти наиболее надежный способ решения этой проблемы, я пришел к выводу, что, поскольку файл неполон, в нем отсутствуют некоторые COMMAS.
Поэтому я хочу посчитать количество COMMAS, появляющееся в файле CSV. Правильный файл должен иметь 19 запятых, любые проблемные файлы, которые я обнаружил за последние полгода, имели бы МЕНЬШЕ, чем это. У них также есть CR-LF, отсутствующий в конце линии. Они просто заканчиваются запятой после некоторого значения, и это все.
Пример хорошего файла CSV:
STRING1,STRING2,2017-01-20 17:34:08,53.808536,-7.789231,19.5,3,0,STRING3,2017-01-20 17:34:19,2,0,7.9,2,0,1,0,0,0,0
Пример неверного файла CSV:
STRING1,STRING3,2017-01-12 10:11:09,53.779093,-7.494274,
Мой вопрос: как я могу посчитать количество COMMAS в одном файле CSV, и если это количество не соответствует определенному числу для выполнения определенной операции (например, переместить этот неверный файл в папку ERRORS, с которой я мог бы иметь дело позже). Если файл имеет правильное количество COMMAS, просто позвольте ему быть. Иными словами, мне нужно переместить неправильно отформатированные CSV-файлы в папку ERRORS и оставить правильно отформатированные CSV-файлы такими, какими они были.
К вашему сведению: файлы CSV всегда содержат только одну строку данных.
Я экспериментировал с определенными решениями, которые пытаются найти и посчитать экземпляры определенных строк в файле TXT, но это ни к чему не приводит. Возможно, потому что моя строка - просто знак COMMA ... Я не знаю.
Я был бы очень признателен вам за помощь в этом вопросе.