Чтение и анализ целых чисел как дат - PullRequest
0 голосов
/ 22 апреля 2019

Цель моего задания - прочитать даты из входного файла, затем найти и отобразить его.Поэтому я могу искать конкретную дату или получать даты окончания каждого месяца.Я провел 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...

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 22 апреля 2019

Ошибка в первом фрагменте заключается в том, что вы сделали from datetime import datetime вместо import datetime перед выполнением datetime.date.

Также обратите внимание, что параметры для datetime.date упорядочены (year, month, day).

0 голосов
/ 22 апреля 2019

Вот подход, который разбирает даты и помещает их в список.

Регулярное выражение в разбиении ''\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)

Ouput:

1970-06-06
2001-07-07
1974-03-15
1977-01-07
1983-02-17
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...