Проверьте, имеет ли файл формат CSV с Python

Кто-то мог обеспечить эффективный способ проверить, имеет ли файл формат CSV с помощью Python?

20
задан Assaf Lavie 6 June 2010 в 16:42
поделиться

4 ответа

Вам нужно четко обдумать, что вы считаете файлом CSV.

Например, какие символы могут находиться между запятыми. Это только текст? Могут ли это быть и символы Юникода? Должно ли в каждой строке быть одинаковое количество запятых?

Я не знаю строгого определения файла CSV. Обычно это текст ASCII, разделенный запятыми, и каждая строка имеет одинаковое количество запятых и заканчивается терминатором строки вашей платформы.

В любом случае, как только вы ответите на вышеперечисленные вопросы, вы немного продвинетесь на пути к тому, чтобы узнать, как определить, является ли файл файлом CSV.

-3
ответ дан 30 November 2019 в 00:59
поделиться

Попробуйте разобрать его как CSV и посмотрите, не появится ли ошибка.

-2
ответ дан 30 November 2019 в 00:59
поделиться

Вы можете попробовать что-то вроде следующего, но только потому, что вы получили диалект обратно из csv.Sniffer , действительно недостаточно для гарантии того, что у вас есть действующий CSV-документ.

csv_fileh = open(somefile, 'rb')
try:
    dialect = csv.Sniffer().sniff(csv_fileh.read(1024))
    # Perform various checks on the dialect (e.g., lineseparator,
    # delimiter) to make sure it's sane

    # Don't forget to reset the read position back to the start of
    # the file before reading any entries.
    csv_fileh.seek(0)
except csv.Error:
    # File appears not to be in CSV format; move along
29
ответ дан 30 November 2019 в 00:59
поделиться

В Python есть модуль csv, так что вы можете попробовать разобрать его под разными диалектами.

0
ответ дан 30 November 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: