首页 > 解决方案 > 带有csv输入的Python类__init__?

问题描述

假设我在 Python 中定义了一个类,它看起来像这样。

class myclass:
    def __init__(self, filename):
        with open(filename, 'r') as read_obj:
            csv_reader = reader(read_obj)
            header = next(csv_reader)
            if header != None:
                for row in csv_reader:
                    self.a = row[0]
                    self.b = row[1]

我应该如何更改,__init__以便在传递具有多行的 csv 文件时,它将生成包含所有行信息的 myclass 对象?

例如,我的 test.csv 文件如下所示:

['a1','b1']
['a2','b2']

然后当我调用它时: mc = myclass('test.csv') mc 将包含 self.a = ['a1','a2'] 和 self.b = ['b1','b2']

标签: python

解决方案


这些属性应该是列表,然后在循环中附加到它们。

class myclass:

    def __init__(self, filename):
        self.a = []
        self.b = []
        with open(filename, 'r') as read_obj:
            csv_reader = reader(read_obj)
            header = next(csv_reader)
            if header != None:
                for row in csv_reader:
                    self.a.append(row[0])
                    self.b.append(row[1])

推荐阅读