【问题标题】:How to extract a month from date in csv file?如何从csv文件中的日期中提取一个月?
【发布时间】:2020-11-24 19:00:49
【问题描述】:

我试图通过从日期中提取月份来获取本月工作的所有员工的输出,但我收到此错误:

month = int(row[1].split('-')[1])
IndexError: list index out of range

考勤日志 csv 中的一行如下所示:

"404555403","2020-10-14 23:58:15.668520","Chandler Bing"

我不明白为什么它超出了范围? 感谢您的帮助!

import csv
import datetime

def monthly_attendance_report():
"""
The function prints the attendance data of all employees from this month.
"""
this_month = datetime.datetime.now().month
with open('attendance_log.csv', 'r') as csvfile:
    content = csv.reader(csvfile, delimiter=',')
    for row in content:
        month = int(row[1].split('-')[1])
        if month == this_month:
            return row

monthly_attendance_report()

【问题讨论】:

  • 您的逻辑适用于列表;尝试检查您是否正确地遍历 CSV 文件(即尝试打印出row)。

标签: python csv datetime


【解决方案1】:

它对我有用。问题可能在于处理 csv 文件,因为 csv 文件在大多数情况下都有标题,这意味着您无法拆分标题文本。因此,将切片器 [1:] 添加到您的 for 循环并忽略带有标题的第一行:

for row in content[1:]:

而且切片处理日期也完全不好。使用 datetime 模块或类似的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 2020-04-29
    • 2014-05-01
    • 2019-08-31
    • 1970-01-01
    • 2019-03-20
    • 2019-10-05
    相关资源
    最近更新 更多