#!/usr/bin/env python # -*- coding: utf-8 -*- import parsedatetime as pdt # $ pip install parsedatetime pyicu calendar = pdt.Calendar(pdt.Constants(localeID='fr', usePyICU=True)) for date_string in [u"Aujourd'hui", "3 juillet", u"4 Août", u"Hier"]: dt, success = calendar.parseDT(date_string) if success: print(date_string, dt.date())
Выход
3 juillet 2015-07-03 4 Août 2015-08-04
Aujourd'hui, Hier не распознаются (parsedatetime 1.4).
Текущая версия github (будущее 1.5) поддерживает настройку дня смещения. Его можно использовать для анализа Aujourd'hui, Hier:
#!/usr/bin/env python # -*- coding: utf-8 -*- import parsedatetime as pdt class pdtLocale_fr(pdt.pdt_locales.pdtLocale_icu): def __init__(self): super(pdtLocale_fr, self).__init__(localeID='fr_FR') self.dayOffsets.update({u"aujourd'hui": 0, u'demain': 1, u'hier': -1}) pdt.pdtLocales['fr_FR'] = pdtLocale_fr calendar = pdt.Calendar(pdt.Constants(localeID='fr_FR', usePyICU=False)) for date_string in [u"Aujourd'hui", "3 juillet", u"4 Août", u"Hier", u"au jour de hui", u"aujour-d’hui", u"au-jour-d’hui", "demain", "hier", u"today", "tomorrow", "yesterday"]: dt, rc = calendar.parseDT(date_string) if rc > 0: print(date_string, dt.date())
Выход
Aujourd'hui 2014-10-11 3 juillet 2015-07-03 4 Août 2015-08-04 Hier 2014-10-10 demain 2014-10-12 hier 2014-10-10 today 2014-10-11 tomorrow 2014-10-12 yesterday 2014-10-10
To установите его, запустите:
$ pip install git+https://github.com/bear/parsedatetime
Я не знаю, каков формат файла tseries, но это может быть проблемой с вкладками или количеством пробелов, на которые вы разбиваете.
Как насчет:
import re
for i in lines:
print(re.split('\s+',line)[:1])