如何处理CSV文件第一列第一行的奇怪字符?

62lalag4  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(244)

我尝试将CSV文件第一列中的日期转换为元组,以便查找该列中的所有日期与当前日期之间的差异,但我收到以下错误:

"ValueError: time data '2023-04-05' does not match format '%Y,%d,%m'"

这就是我目前所拥有的:

from csv import reader
from datetime import datetime

# open file in read mode
with open("food.csv", "r") as read_obj:
    # pass the file object to reader() to get the reader object
    csv_reader = reader(read_obj)
    # Iterate over each row in the csv using reader object

    for row in csv_reader:
        # row variable is a list that represents a row in csv

        date_str = row[0].strip("-")
        fmt = "%Y,%d,%m"

        date_obj = datetime.strptime(date_str, fmt)

        t_tuple = date_obj.timetuple()

        print(t_tuple)
v6ylcynt

v6ylcynt1#

这些字符表示您的文件具有BOM(字节顺序标记)。
它还指示您正在尝试以latin 1(ISO-8859-1)格式读取文件。
但是BOM的存在仅适用于UTF-8,因此请尝试将open()更改为:

with open("food.csv", "r", encoding="utf-8-sig") as read_obj

“sig”是指:需要BOM,如果找到,则丢弃它。
日期格式字符串中也有逗号,但错误显示为连字符。

相关问题