PythonCSV.reader文件跳过最后一列

2024-06-13 14:12:50 发布

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

csv阅读器有个奇怪的问题。你知道吗

这是我的csv列表“维吉尔”有3项,在“玛丽亚”之后

你知道吗_时间表.csv(略)

maria,2018-02-08 20:30:04.180000,45.0
maria,2018-02-15 20:30:04.180000,45.0
maria,2018-02-22 20:30:04.180000,45.0
maria,2018-03-01 20:30:04.180000,45.0
virgil,2018-02-08 20:30:04.180000,45.0
virgil,2018-02-15 20:24:41.264000,45.0
virgil,2018-02-22 20:24:41.264000,45.0
virgil,2018-03-01 20:24:41.264000,45.0

但当我处理它时,结果变成了这个,并导致索引超出范围。你知道吗

['merry', '2018-02-08 09:09:09.315000', '45.0']
['merry', '2018-02-15 09:09:09.315000', '45.0']
['merry', '2018-02-22 09:09:09.315000', '45.0']
['merry', '2018-03-01 09:09:09.315000', '45.0']
['virgil', '2018-02-08 09:09:09.3150']
IndexError: timesheetF[2] index out of range

“梅里”被放置在更远的地方,但在这个过程中,它变成了它的旁边。你知道吗

我遗漏了什么程序?下面是我的代码

_resources = list(csv.reader(open("raw/resources.csv", 'rb')))
_timesheets = list(csv.reader(open("raw/_timesheet.csv", 'rb')))
for resource in _resources:
    for timesheetF in _timesheets:
        res_row = []
        if(resource[0] == timesheetF[0]):

            res_row.append(resource[0])

            if 'philippines' in resource[1].lower():
                res_row.append("Manila")
            else:
                res_row.append(resource[1])

            #Active
            if 'true' in resource[2].lower():
                res_row.append("Yes")
            else:
                res_row.append("No")

             if 'kronos' in resource[3].lower():
                res_row.append("KRO")
            elif 'avenew' in resource[3].lower():
                res_row.append("POS")
            elif 'hcm' in resource[3].lower():
                res_row.append("LND")
            else:
                res_row.append(resource[3])

            if 'support and maintenance' in resource[4].lower():
                res_row.append("AM")
            elif 'development' in resource[4].lower():
                res_row.append("AD")
            elif 'admin' in resource[4].lower():
                res_row.append("Admin")

            res_row.append(timesheetF[2]) ###### ERROR HERE ###
            results.writerow(res_row)

Tags: csvinifreslowerelseresourcerow
1条回答
网友
1楼 · 发布于 2024-06-13 14:12:50

没有看到_时间表.csv我最好的猜测是,时间表csv文件中的一行只包含2个字段,而它通常应该包含3个字段。你知道吗

错误提示您索引2超出了当前正在处理的时间表的可用值范围。我会试着找出哪一排_时间表.csv是导致错误的原因。你知道吗

你可以在res周围加上try/except语句_行。追加(timesheetF[2])行并打印出timesheetF值,以帮助调试问题。你知道吗

相关问题 更多 >