Python извлечение адресов электронной почты из текстового файла и размещение в словаре - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь извлечь адреса электронной почты из текстового файла и поместить их в словарь. Следующий код позволяет мне распечатать их. Примечание: я вытаскиваю свой ответ через символы, а не слова, которые, как мне кажется, сами по себе являются проблемой. Как вынуть адреса электронной почты и затем назначить их словарю?

    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:])

1 Ответ

0 голосов
/ 07 февраля 2020

Кажется, вы пытаетесь посчитать отправителей электронной почты из формата файла 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))

Надеюсь, это поможет.

...