从CSV读取返回索引器错误:列表索引超出范围

2024-05-01 21:55:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个管理员工数据库的脚本。在添加一个雇员记录并用数据附加一个CSV文件之后,我关闭了程序。从新开始,我尝试导入CSV,它返回错误“IndexError:list index out of range” 附加csv并关闭程序后,我使用notpad++打开csv。在文件中,添加了两行。 使用try-except块,如何从CSV文件中删除行? 在add\u employee函数中,有人知道为什么要添加两行吗?你知道吗

def import_employees():
    with open('Employee_database.csv', 'r') as csvfile: #Opens the student answer file, and closes once finished
        employee_reader = csv.reader(csvfile)

        first_row = True
        for row in employee_reader:
            #Skip the first row with column names
            if first_row:
                first_row = False
                continue
            try:
                fullName = row[0] + ' ' + row[1] #Creates full name for dictionary key
                employeeList[fullName] = row
            except IndexError:
                del 

def add_employee(): #CPT 200: Functionality 1 part 1
        employeeFName = input("Please Emter the Employee #%d's First Name:" % num)
        employeeLName = input("Please Enter the Employee #%d's Last Name:" % num)
        employeeSSN = input("Please Enter %s %s's SSN (123456789):" % (employeeFName, employeeLName))
        employeePhone = input("Please Enter %s %s's Phone Number:" % (employeeFName, employeeLName))
        employeeEmail = input("Please Enter %s %s's Email Address:" % (employeeFName, employeeLName))
        employeeSalary = input("Please Enter %s %s's Salary:" % (employeeFName, employeeLName))
        employeeFull = employeeFName + ' ' + employeeLName
        print(" ")
        employeeInfo = [employeeFName.capitalize(), employeeLName.capitalize(), employeeSSN, employeePhone, employeeEmail, employeeSalary]

        if (employeeFull and employeeSSN) not in employeeList.keys():
            with open('Employee_database.csv', 'a+') as employeeCSV:
                employee_writer = csv.writer(employeeCSV)

                employee_writer.writerow(employeeInfo)
        else:
            print('Employee is already in the database, please try again.')

        return employeeFull.upper(), employeeInfo

Tags: 文件csvtheinputwithemployeerowfirst