Я хотел бы прочитать большой файл .mbox размером 3 ГБ из резервной копии Gmail. Это работает:
import mailbox
mbox = mailbox.mbox(r"D:\All mail Including Spam and Trash.mbox")
for i, message in enumerate(mbox):
print("from :",message['from'])
print("subject:",message['subject'])
if message.is_multipart():
content = ''.join(part.get_payload(decode=True) for part in message.get_payload())
else:
content = message.get_payload(decode=True)
print("content:",content)
print("**************************************")
if i == 10:
break
за исключением того, что для первых 10 сообщений требуется более 40 секунд.
Есть ли более быстрый способ доступа к большому файлу .mbox с помощью Python?
mailbox
считывает все это в память. Нетрудно переписать простой анализаторmbox
в качестве генератора (вкратце, любая строка, начинающаяся сFrom
, запускает новое сообщение). - person tripleee   schedule 10.01.2020