Вам нужно четко подумать о том, что вы считаете файлом CSV.
Например, какие символы могут появляться между запятыми. Это только для текста? Это могут быть и символы Юникода? Должна ли каждая строка иметь одинаковое количество запятых?
Нет строгого определения файла CSV, о котором я знаю. Обычно это текст ASCII, разделенный запятыми, и каждая строка имеет одинаковое количество запятых и оканчивается ограничителем строки вашей платформы.
В любом случае, ответив на вопросы, приведенные выше, вы немного продвинетесь на пути к тому, чтобы узнать, как определить, является ли файл CSV-файлом.