Найти количество столбцов в CSV-файле

Моя программа должна читать CSV-файлы, которые могут иметь 1, 2 или 3 столбца, и ей необходимо соответствующим образом изменить свое поведение. Есть ли простой способ проверить количество столбцов без «потребления» строки до запуска итератора? Следующий код является самым элегантным из всех, что я мог сделать, но я бы предпочел запустить проверку до запуска цикла for:

import csv
f = 'testfile.csv'
d = '\t'

reader = csv.reader(f,delimiter=d)
for row in reader:
    if reader.line_num == 1: fields = len(row)
    if len(row) != fields:
        raise CSVError("Number of fields should be %s: %s" % (fields,str(row)))
    if fields == 1:
        pass
    elif fields == 2:
        pass
    elif fields == 3:
        pass
    else:
        raise CSVError("Too many columns in input file.")

Изменить:Я должен был включить больше информации о моих данных. Если имеется только одно поле, оно должно содержать имя в экспоненциальном представлении. Если полей два, первое должно содержать имя, а второе — код привязки. Если есть три поля, дополнительное поле содержит флаг, указывающий, действительно ли имя в настоящее время. Поэтому, если в какой-либо строке есть 1, 2 или 3 столбца, все они должны быть одинаковыми.

22
задан rudivonstaden 3 July 2012 в 12:36
поделиться