我想寫一個簡單的新聞聚合器。如何比較標準的Python 9元組時間格式?
我使用http://code.google.com/p/feedparser/,我得到這樣的(2004,1,1,19,48,21,3,1,0),每個崗位,http://packages.python.org/feedparser/date-parsing.html
如何Python標準9元組的時間格式我比較這個時間格式?
如果我想知道Feed中的文章是否是新的,是比較時間的唯一方法嗎?
非常感謝!
我想寫一個簡單的新聞聚合器。如何比較標準的Python 9元組時間格式?
我使用http://code.google.com/p/feedparser/,我得到這樣的(2004,1,1,19,48,21,3,1,0),每個崗位,http://packages.python.org/feedparser/date-parsing.html
如何Python標準9元組的時間格式我比較這個時間格式?
如果我想知道Feed中的文章是否是新的,是比較時間的唯一方法嗎?
非常感謝!
比較時間可能是最好的方法,除非你想保留你見過的每篇文章來過濾完整的feed。
9元組的實際的比較是很容易的:Python的默認排序元組的元素比較項明智的:
>>> (2004, 1, 1, 19, 48, 21, 3, 1, 0) > (2004, 1, 1, 19, 48, 10, 3, 1, 0)
True
>>> (2004, 1, 1, 19, 48, 21, 3, 1, 0) > (2005, 1, 1, 19, 48, 21, 3, 1, 0)
False
果然正是你所需要的。
是否這樣?
>>> date1 = (2004, 1, 1, 19, 48, 21, 3, 1, 0)
>>> date2 = (2012, 1, 1, 19, 48, 21, 3, 1, 0)
>>> date1[0] == date2[0]
False
>>> date1[0] == 2004
True
時間元組可以直接與d1 < d2
或d1 == d2
進行比較。字段按照字典順序進行比較(即比較第一個字段,如果相等,則比較下一個字段等)。
如果你想限制的比較詳細,使用切片砍過的領域,你並不需要:
d1[:3] == d2[:3] # compare just the year/month/day fields
謝謝!但我不這麼認爲。它應該以一種更簡單的方式進行比較。 – 2012-03-06 03:53:48
@Susan,你也可以用'<' and '>'比較來檢查一個日期是否早於或晚於另一個日期 – 2012-03-06 03:57:37