我有两个由间隔分隔的列组成的文本文件。这些是这两个文件的摘录:
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-我如何计算列数?鉴于我的实际文件有几千行/行,为什么我得到这些结果(7)?
答案 0 :(得分:10)
import csv
with open('filename') as f:
reader = csv.reader(f, delimiter=' ', skipinitialspace=True)
first_row = next(reader)
num_cols = len(first_row)
答案 1 :(得分:2)
只读第一行,使用split查找所有非空白部分,计算:
with file("bla") as f:
line = f.readline()
print len(line.split()), "columns"
答案 2 :(得分:0)
得到第一行的长度!!
import csv
file = 'my_File.csv'
reader = csv.reader(open(file,'rb'),delimiter=" ")
num_cols = len(next(read))