Python - 从csv文件中获取列数

时间:2014-02-14 21:45:34

标签: python

我正在尝试确定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])

3 个答案:

答案 0 :(得分:6)

len("love, hurt, hit") 14,因为它是一个字符串。

您想要的lenline,这是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