我正在尝试从文本文件中提取电子邮件地址,并将其放入字典中。以下代码允许我将其打印出来。注意:我是通过字符而不是单词来回答问题,我认为这本身就是一个问题。如何提取电子邮件地址,然后将其分配给词典?
fname = input("Enter file:")
try:
fhand = open(fname)
except:
print('File cannot be opened:')
exit()
counts = dict()
for line in fhand:
words = line.split
if line.startswith('From:'):
print(line[6:])
似乎您正在尝试从mbox文件格式计算电子邮件发件人。如果是这种情况,这是使用来自Python 3的标准库模块的解决方案:
from collections import Counter
# just to have a pretty output
from pprint import pprint
import mailbox
fname = input("Enter file:")
with mailbox.mbox(fname) as mbox:
senders = Counter(msg['From'] for msg in mbox)
pprint(senders)
作为使用collections.Counter
的良好副作用,您可以有类似以下内容:
print('Top 10 senders')
pprint(senders.most_common(10))
希望对您有帮助。