1

我只是在玩一些课程和方法作为学习练习。

我正在努力创建的方法是一种计算 CSV 中有多少列的新方法。

如何锻炼 CSV 中有多少列?

到目前为止,我的班级,(很高兴您指出,这也是错误的)

import csv

class CSV:


    def __init__(self, file=None):
        self.file = file

    def read_file(self):
        data = []
        file_read = csv.reader(self.file)
        for row in file_read:
            data.append(row)
        return data

    def get_row_count(self):
        return len(self.read_file())

    def get_data(self, rows=1):
        data = self.read_file()

        return data[:rows] 
4

2 回答 2

4

如果您确定所有行都具有相同的列数,那么您可以简单地读取第一行并获取其长度:

self.file_read = csv.reader(self.file)
self.columns = len(self.file_read.next())

请注意,.next()消耗一排。(如果使用 Python 3,你会做len(next(self.file_read)).

于 2013-04-23T15:38:23.977 回答
2

我能想到的最简单的方法就是抓取 csv 中的第一行并返回它的长度。CSV 文件实际上无法读取其长度,因此首先必须将行放入数组中。我将调用您的read_file()函数以将数据作为数组获取并获取第一行:

def get_column_number(self):
    new_data = self.read_file()
    return len(new_data[0])
于 2013-04-23T15:00:09.400 回答