下面是練習:“撰寫一個程式,按照提交完成的一周中的哪一天對每封郵件進行分類。為此查找以“From”開頭的行,然后查找第三個單詞并保持運行計數一周中的每一天。在程式結束時列印出字典的內容(順序無關緊要)。示例行:來自 [email protected] Sat Jan 5 09:14:16 2008 " 我需要將這些型別的行從我的檔案中分離出來,但在輸出中只顯示零和第一個位置(發件人和電子郵件地址)而不顯示其他詞。輸出中的錯誤是:“list index is out of rage”。這是我的代碼:
file1= open('short.txt')
counts= dict()
for line in file1:
line = line.rstrip()
if not line.startswith('From: '): continue
splited = line.split()
print(splited)
day= splited[2]
counts[day]= counts.get(day,0) 1
print('Count of days:',counts)
uj5u.com熱心網友回復:
請熟悉郵箱檔案格式:https : //en.wikipedia.org/wiki/Mbox,您的輸入檔案可能是它的某種變體。
您要決議的“發件人”行"From "不包含分號,它位于已保存訊息的開頭。
該"From: "行(帶分號)是訊息頭的一部分,具有不同的語法 - 它包含地址,而不是日期。標題與郵件正文通過空白鏈接分開。您應該轉到空白行的下一條訊息。
uj5u.com熱心網友回復:
您正在搜索以 開頭From:的行,而您想要的行以 開頭From ,我認為下面的代碼應該適合您:
counts = {}
with open('short.txt') as file1:
for line in file1:
line = line.strip()
if line.startswith('From '):
day = line.split()[2]
counts[day] = counts.get(day ,0) 1
print (counts)
輸出: ?
{'Sat': 1, 'Fri': 20, 'Thu': 6}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/362116.html
