我正在尝试确定python v2.6中CSV文件中存在的列数。这必须是一般的,因为对于我传递的任何输入,我应该能够获得文件中的列数。
示例输入文件:love hurt hit
其他输入文件:car speed beforeTune afterTune repair
到目前为止,我尝试做的是读取文件(包含大量行),获取第一行,然后计算第一行中的单词数。分隔符是,
。当我尝试根据示例输入拆分headings
时遇到问题,然后len(headings)
给我14
这是错误的,因为它应该给我3.任何想法?我是初学者。
with open(filename1, 'r') as f1:
csvlines = csv.reader(f1, delimiter=',')
for lineNum, line in enumerate(csvlines):
if lineNum == 0:
#colCount = getColCount(line)
headings = ','.join(line) # gives me `love, hurt, hit`
print len(headings) # gives me 14; I need 3
else:
a.append(line[0])
b.append(line[1])
c.append(line[2])
答案 0 :(得分:6)
len("love, hurt, hit")
14,因为它是一个字符串。
您想要的len
是line
,这是list
:
print len(line)
这会输出列的数量,而不是字符的数量
答案 1 :(得分:0)
# old school
import csv
c=0
field={}
with open('csvmsdos.csv', 'r') as csvFile:
reader = csv.reader(csvFile)
for row in reader:
field[c]=row
print(field[c])
c=c+1
row=len (field[0])
column=len(field)
csvFile.close()
答案 2 :(得分:0)
一个简单的解决方案:
with open(filename1) as file:
# for each row in a given file
for row in file:
# split that row into list elements
# using comma (",") as a separator,
# count the elements and print
print(len(row.split(",")))
# break out of the loop after
# first iteration
break