从CSV读取数据到类对象列表-Python

时间:2018-12-04 01:46:50

标签: python-3.x list class object

我很难弄清楚这一点。基本上,我有一个.csv文件,其中包含7名员工,包括其姓氏和名字,员工ID,部门编号和职务。我的目标是让def readFile(employees)接受一个空列表(称为雇员),打开文件进行读取,然后将文件中的所有雇员加载到雇员对象列表(雇员)中。我的班级已经建立为:

class Employee:
def __init__(self, fname, lname, eid, dept, title):
    self.__firstName = fname
    self.__lastName = lname
    self.__employeeID = int(eid)
    self.__department = int(dept)
    self.__title = title

我还有其他几种类方法,但是基本上我不太了解如何正确地将文件加载到对象列表中。

2 个答案:

答案 0 :(得分:0)

我能够弄清楚这一点。我打开文件,然后从中读取一行,剥离\ n并拆分数据。只要不是空行,我就使用while循环来保持读取行,并将其附加到我的空列表中。我还必须将第一个索引项目拆分为相同的字符串,因为它是名字和姓氏,所以我需要将它们分开。

def readFile(employees):
    with open("employees.csv", "r") as f:
        line = f.readline().strip().split(",")
        while line != ['']:
            line = line[0].split(" ") + line[1:]
            employees.append(Employee(line[0], line[1], line[2], line[3], line[4]))
            line = f.readline().strip().split(",")

它很可能可以编写得更好,更Python化,但是它可以满足我的需要。

答案 1 :(得分:-1)

为什么不使用熊猫。因此,您定义了一个雇员熊猫对象,并使用其索引选择每个雇员,并使用每列的名称选择一个特定的雇员属性。