python - 我需要比较和日期并返回还有多少天到期或多少天前到期
问题描述
我以前从未使用过 Python,来自 Javascript 背景。
我需要遍历 csv 中的数组并将其与 today 变量中的日期进行比较。然后返回每个项目过期或有效的位置。还有还有多少天到期或多少天前到期。
任何指针?
from datetime import datetime
today = datetime(2020, 5, 2)
with open('./guarantees_end.csv', 'r') as f:
for line in f.readlines():
我的 csv 数据编译如下:
2020-06-23,Flat C
2020-07-31,2 Teal Close
2020-08-14,67 Pinkers Mead
2020-08-31,3 Acacia Road
2020-04-13,1 Manor Place
解决方案
您可以使用以下命令读取今天的日期:
import datetime
today = datetime.datetime.now().date()
我的 temp.csv 包含:
2020-12-11, ABCD
2020-12-23, EFGH
2020-12-01, IJKL
2020-11-11, MNOP
要从 CSV 读取,您可以使用:
f = open('temp.csv')
csv_reader = csv.reader(f, delimiter=',')
for row in csv_reader:
product_date_str = str(row[0])
现在您可以使用以下方法将日期字符串(从 csv 读取)转换为 datetime.date 对象:
date_format = '%Y-%m-%d'
product_date = datetime.datetime.strptime(product_date_str, date_format).date()
现在您可以使用以下方法获取日期差异:
diff = (today - product_date).days
然后你可以使用这个差异来打印或显示你想要的任何东西。例如:
if diff > 0:
print('{} has already expired since {} days.'.format(row[1], abs(diff)))
elif diff < 0:
print('{} will expire in next {} days.'.format(row[1], abs(diff)))
else:
print('{} will expire today.'.format(row[1]))
所以完整的代码片段如下所示:
import csv
import datetime
today = datetime.datetime.now().date()
with open('temp.csv') as f:
csv_reader = csv.reader(f, delimiter=',')
for row in csv_reader:
product_date_str = str(row[0])
date_format = '%Y-%m-%d'
product_date = datetime.datetime.strptime(product_date_str, date_format).date()
diff = (today - product_date).days
if diff > 0:
print('{} has already expired since {} days.'.format(row[1], abs(diff)))
elif diff < 0:
print('{} will expire in next {} days.'.format(row[1], abs(diff)))
else:
print('{} will expire today.'.format(row[1]))
推荐阅读
- c# - 在 N 层应用程序中配置 Automapper
- ios - 此捆绑包不支持先前应用版本支持的一个或多个设备
- reactjs - React Redux JWT 添加标头
- windows - 使用 FC 仅比较文件 2 文件夹的文件名
- elasticsearch - elasticsearch - x-pack 目录中没有 setup-passwords bin
- angular - 无法在 dist 文件夹中生成 html 文件?
- javascript - 计算数组多个值中的元素
- c# - 使用 C# 读取 git Repo 会出现错误 404
- html - 使用 CSS 和 HTML 将导航表栏变成悬停下拉菜单
- amazon-web-services - AWS GREENGRASS 无法连接到设备