首页 > 解决方案 > 如何在python中从电子邮件中读取pdf附件

问题描述

我正在尝试从我的电子邮件中提取 Pdf 附件并尝试打印它,但它给我的输出非常糟糕。有什么方法可以只提取其中的文本和数字吗?这是我的代码

import imaplib
import email
import os
import io

svdir = 'P:\\'

mail = imaplib.IMAP4_SSL('imap.gmail.com',993)
mail.login("example@gmail.com", "examplepassword")
mail.select("Inbox")

typ, msgs = mail.search(None, '(SUBJECT "samplepdf")')
msgs = msgs[0].split()
print(msgs)

for emailid in msgs:
    resp, data = mail.fetch(emailid, "(RFC822)")

email_body = data[0][1]
m = email.message_from_bytes(email_body)

if m.get_content_maintype() != 'multipart':
    continue

for part in m.walk():
    if part.get_content_maintype() == 'multipart':
        continue
    if part.get('Content-Disposition') is None:
        continue

    filename = part.get_filename()
    fg=part.get_payload(decode=True)
    print(fg)

对不起,我不能在这里发布输出,因为它真的很长,我什至不能复制它,因为它让我的电脑滞后。

提前致谢。

标签: python-3.xemailpdfimap

解决方案


Python 没有任何内置包来读取 PDF 文件。您需要使用 PDF 解析库,例如https://pypi.org/project/PyPDF2/

希望这可以帮助。


推荐阅读