我有两个由空格分隔的列组成的文本文件。这些是这两个文件的摘录:
文件A
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
....
文件B
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)?
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 open("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))