Проверка .csv файла на основе разделителя в Python - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь написать функцию, которая проверяет, являются ли все разделители в файле .csv «;». Моя попытка была использовать csv.Sniffer():

import csv
def check_data_validity(file):
    sniffer=csv.Sniffer()
    dialect = sniffer.sniff(file)
    if dialect.delimiter != ';':
        return False

Независимо от файла, я всегда получаю «Ложь». Я полагаю, что это можно сделать, прочитав каждую строку и проверив, что такое разделители, но я нахожу это пугающим для огромных файлов.

Пример файла в необработанном формате:

timestamp_1;timestamp_2;Value_1;Value_2;Value_3;Result
1509494402000;2017-11-01T00:00:02Z;292.05;;26.89;0.0;;;
1509494410000;2017-11-01T00:00:10Z;6.0;;4.0;1.0;;;
1509494412000;2017-11-01T00:00:12Z;29.23;;4.0;0.0

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете использовать Sniffer и проверить, не выдана ли ошибка.

import csv
def check_data_validity(file):
    with open(file, newline = "") as csvfile:
        try:
            dialect = csv.Sniffer().sniff(csvfile.read(1024), delimiters = ";")
            print("Delimiter is ;")
        except:
            print("Wrong Delimiter")
...