1
所以基本上我想讀取多個文件行的目錄,並使用正則表達式來專門找到一種時間戳的開始,我想也放置月份列表的一個實例的正則表達式中,然後創建根據它出現的次數計算每個月的計數器。我在下面有一些代碼,但它仍在進行中。我知道我關閉了date_parse,但我這就是爲什麼我問。如果你能想到更高效的方法,請留下另一個建議。謝謝。你可以在正則表達式中放置一個列表成員的實例來匹配python嗎?
months = ['Jan','Feb','Mar','Apr','May','Jun',\
'Jul','Aug','Sep','Oct','Nov',' Dec']
date_parse = re.compile('[Date:\s]+[[A-Za-z]{3},]+[[0-9]{1,2}\s]')
counter=0
for line in sys.stdin:
if data_parse.match(line):
for month in months in line:
print '%s %d' % (month, counter)
感謝steveha,從來沒有聽說過defaultdict之前。我認爲這可以工作。 – Nightvein 2012-04-12 05:59:13
好的。順便說一句,如何使用格式打印defaultdict對象? – Nightvein 2012-04-12 06:04:42
'defaultdict'在各方面都像一個普通的老式'dict'一樣行動,除了如果你想查找某些東西並且它不在那裏,它會自動添加。如果你想打印一個找到的月份列表以及它們的計數,你可以在c:print(「%s:%d」%(month, c [month])''但是這會按隨機順序打印月份,我建議你列出幾個月,比如'lst_months = ['Jan','Feb',...,'Dec]',然後遍歷在那個列表中的幾個月,並打印它們或其他什麼。 – steveha 2012-04-12 06:22:19