2014-01-16 98 views
0

我试图解析从一堆有这些格式之一文件名的日期和时间:解析Python的日期时间

  • prefix.YYYY-MM-DD.suffix
  • prefix.YYYY-MM-DD_HH:MM:SS.sufix
  • prefix.YYYY-MM-DD-SSSSS.sufix

这三个日期时间格式是:

  • prefix.%Y-%m-%d.suffix
  • prefix.%Y-%m-%d_%H:%M:%S.suffix
  • prefix.%Y-%m-%d-%?????.suffix

前两个是容易与日期时间模块来解析,但我无法确定如何解析5位数秒范围从00000到82800(每天86400秒)。

如果可能的话,我想使用标准datetime模块,因为这需要非常便携。

我的目标是拥有一个可以摄取多个日期时间格式的函数,因此如果可能的话,我需要远离一个解析器。

def myparser(filename, datetimeformat): 
    # do some stuff - maybe as easy as 
    datetimeobject = datetime.strptime(filename, datetimeformat) 
    return datetimeobject 

任何想法如何最好地做到这一点将不胜感激。

+0

为什么你的5位数秒只能达到82800?这是一个错字吗? – senshin

+0

不是一个错字,但我也不完全清楚。每小时有一个文件,最后一个在23小时。23小时* 60分钟* 60秒= 82800秒。在其他应用程序中,它们的范围可以从00000到86400. – jhamman

+1

我明白了。我不确定如果没有针对5位数字格式的特殊情况分析器,您可以如何做到这一点,因为没有“每秒秒数”的格式规范。 – senshin

回答

0

如果所有人都分拆日期并将其解析为datetime.datetime,则将时间解析为datetime.timedetla并将其添加到您应该获得的第一个值。

+0

感谢您的建议。没有我期望的那么干净,但它现在可以工作。 – jhamman