2014-01-16 99 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