如何通过读取文本文件中提到的日期计算到今天的总天数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过读取文本文件中提到的日期计算到今天的总天数?相关的知识,希望对你有一定的参考价值。
我有一个文本文件,其中包含的数据很少,如下所示。
2018-07-20
2018-08-13
2018-07-30
2018-07-18
2018-07-24
2018-08-13
2018-07-20
2018-08-10
我需要找到从提到的日期到今天的天数,此python或shell脚本将按如下所示输入文件f = open(“ / root / interview / date1.txt”,“ r”)。read ().split(“ \ n”)&用系统时间进行计算。预期的输出可能类似于300天差异。我对python或shell脚本不好,请有人帮忙。
答案
这里是代码:
import datetime
dates = []
# Reading dates from dates.txt and
# removing all spaces in the head and tail of the string
with open('dates.txt', 'r') as f:
dates = [i.strip() for i in f.readlines()]
# now dates list contains a bunch of strings like "2018-07-24"
today = datetime.datetime.now().date()
for date_str in dates:
year, month, day = list(map(int, date_str.split('-')))
# year, month and day are now integers
# year = 2018
# month = 7
# day = 24
date = datetime.date(year, month, day)
days_passed = (today - date).days
print(f'days_passed days passed since date_str')
输出为:
641 days passed since 2018-07-20
617 days passed since 2018-08-13
631 days passed since 2018-07-30
643 days passed since 2018-07-18
637 days passed since 2018-07-24
617 days passed since 2018-08-13
641 days passed since 2018-07-20
620 days passed since 2018-08-10
它使用datetime
模块,该模块具有处理日期和时间的所有功能。
另一答案
也许您可以尝试:
import datetime
d1 = datetime.datetime(2018,10,31)
d2 = datetime.datetime(2019,2,2)
interval = d2 - d1
days = interval.days
我尝试使用Python3.7.3,此代码具有良好的性能。您需要支付两个地方的费用。首先,请勿在月或日之前使用额外的``0'',因为使用datetime(2019,02,02)是错误的。其次,使用名称“ interval”,但不要使用其他名称
以上是关于如何通过读取文本文件中提到的日期计算到今天的总天数?的主要内容,如果未能解决你的问题,请参考以下文章