【问题标题】:Why I can't append a list to csv as a new row?为什么我不能将列表作为新行附加到 csv?
【发布时间】:2021-03-26 12:02:57
【问题描述】:

所以我收到了这个错误:

self.list_of_employees.write(new_employee_data)
AttributeError: 'str' object has no attribute 'write'

我不明白我的代码有什么问题:

def add_employee(self, new_employee):
    new_employee_data = [new_employee.employee_id, new_employee.name, new_employee.phone, new_employee.age]
    with open(self.list_of_employees, 'r+') as file1:
        existing_lines = csv.reader(file1)
        for row in existing_lines:
            if new_employee_data in row:
                print("Sorry, the employee is already exist.")
                return
        self.list_of_employees.write(new_employee_data)

如果有任何帮助,我将不胜感激!

【问题讨论】:

    标签: csv class write


    【解决方案1】:

    该函数似乎是更大类的一部分。那是对的吗?错误消息表明self.list_of_employees 是一个字符串,这与open() 的用法一致。 Python 字符串没有.write() 方法。

    file1 是一个文件句柄,这是 .write() 所期望的:

    def add_employee(self, new_employee):
        new_employee_data = [new_employee.employee_id, new_employee.name, new_employee.phone, new_employee.age]
        with open(self.list_of_employees, 'r+') as file1:
            existing_lines = csv.reader(file1)
            for row in existing_lines:
                if new_employee_data in row:
                    print("Sorry, the employee is already exist.")
                    return
            file1.write(new_employee_data)
    

    【讨论】:

    • 哦,我明白了,是的 self.list_of_employees 将文件路径作为字符串引用,所以我应该将写入引用到文件内的数据。谢谢!
    • @Rose - 如果我的回复解决了您的问题,请将答案标记为已接受的解决方案。
    猜你喜欢
    • 2014-01-30
    • 1970-01-01
    • 2023-04-03
    • 2010-11-22
    • 2014-10-10
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多