【发布时间】:2018-01-20 01:39:14
【问题描述】:
我有一个带有日期列的 csv 文件。我想将该日期与当前日期进行比较。当我使用 time 模块获取当前日期时,它是 datetime.date 类型,但是当我使用转换方法 @unwind 发布 here 时,我的列的数据类型是 time.struct_time 并且我收到错误。
import csv
import time
from datetime import datetime
import uuid
present = datetime.today().date()
with open(r'FilePath','r',newline='') as f:
# skip header line
next(f)
r = csv.reader(f)
for row in r:
if len(row[29])>1:
newdate2 = time.strptime(row[29], "%m/%d/%Y").strftime("%Y-%m-%d")
错误:
Traceback (most recent call last):
File "C:/FilePath/DateCompare.py", line 15, in <module>
newdate2 = time.strptime(row[29], "%m/%d/%Y").strftime("%Y-%m-%d")
AttributeError: 'time.struct_time' object has no attribute 'strftime'
索引可以组合成一个字符串,但我不知道如何转换为 datetime.date 进行比较。
将列转换为格式化字符串:
import csv
import time
from datetime import datetime
import uuid
present = datetime.today().date()
with open(r'FilePath','r',newline='') as f:
# skip header line
next(f)
r = csv.reader(f)
for row in r:
if len(row[29])>1:
newdate2 = time.strptime(row[29], "%m/%d/%Y")
newdate3 = ('{}-{}-{}'.format(newdate2[0],newdate2[1],newdate2[2]))
示例字符串输出:
2018-2-1
2018-2-1
【问题讨论】:
标签: python-3.x csv date type-conversion