Подсчет количества столбцов в текстовом файле с помощью Python



У меня есть два текстовых файла, состоящих из столбцов, разделенных пробелами. Вот выдержки из этих двух файлов:



FileA



 1 1742.420   -0.410  20.1530   0.4190   1.7080   0.5940
2 1872.060 0.070 21.4710 0.2950 0.0670 0.3380
3 1918.150 0.150 18.9220 0.0490 1.4240 0.1150
4 1265.760 0.170 19.0850 0.0720 1.3330 0.1450
5 308.880 0.220 20.5020 0.1570 0.0200 0.1720
....


FileB



 1 1198.367    6.465  15.684 0.015  3.119 0.140  1
2 1451.023 6.722 17.896 0.031 0.171 0.041 1
3 1032.364 6.788 18.895 0.074 -0.084 0.088 1
4 984.509 7.342 19.938 0.171 0.043 0.322 1
5 1068.536 7.369 19.182 0.091 0.486 0.143 1
....


Как вы можете видеть, FileA имеет 7 столбцов, а FileB-8. Это код, который я использую для подсчета столбцов:



import csv
file = 'filename'
reader = csv.reader(file)
num_cols = 0
for col in reader:
num_cols = num_cols + 1


Этот маленький код правильно дает количество столбцов для FileA (7), но не для FileB (также дает 7) Что происходит и как я могу это исправить?



Если я считаю строки вместо столбцов, то: 1-Как я могу считать колонны? и 2-учитывая, что мои фактические файлы имеют несколько тысяч строк / строк, почему я получаю эти результаты (7)?

762   3  

3 ответов:

import csv

with open('filename') as f:
    reader = csv.reader(f, delimiter=' ', skipinitialspace=True)
    first_row = next(reader)
    num_cols = len(first_row)

Прочитайте только первую строку, используйте split, чтобы найти все части без пробела, посчитайте их:

with file("bla") as f:
  line = f.readline()
print len(line.split()), "columns"

Просто получите длину первого ряда!!

import csv
file = 'my_File.csv'
reader = csv.reader(open(file,'rb'),delimiter=" ")
num_cols = len(next(read))

Comments

    Ничего не найдено.