我的任务是从输入文件中读取日期,然后进行搜索和映射。因此,我可以查找特定日期或获取每个月的结束日期。我已经花了3天的时间,但似乎无法弄清楚如何读取或解析文件。
这是我尝试过的:
1)
import datetime
def createDateList(filePath):
data = open(filePath, 'r')
dateList = []
for space in data:
month, day, year = map(int, space.split())
date1 = datetime.date(year, month, day)
dateList.append(date1)
return dateList
输入内容如下:
6 6 19707 7 20013 15 19741 7 19772 17 1983...
谢谢!
答案 0 :(得分:1)
第一个代码段中的错误是因为您在执行from datetime import datetime
之前做了import datetime
而不是datetime.date
。
还要注意,datetime.date
的参数是按(year, month, day)
排序的。
答案 1 :(得分:0)
这里是一种分析日期并将其放入列表的方法。
正则表达式''\s|(?<=\d{4})(?=\d)'
中的正则表达式表示在四个连续数字(后跟一个数字)之后在空格上进行拆分。这样,年份将与月份的以下数字分开。这些都是正则表达式中的后向构造和前向构造。
import re
from datetime import date
s = '6 6 19707 7 20013 15 19741 7 19772 17 1983'
dates = re.split(r'\s|(?<=\d{4})(?=\d)', s)
# get length less last 3
i = len(dates) - 3
j = 0
final_date = []
while j <= i:
m, d, yr = dates[j:j+3]
final_date.append(date(int(yr), int(m), int(d)))
j += 3
for d in final_date:
print(d)
输出:
1970-06-06
2001-07-07
1974-03-15
1977-01-07
1983-02-17