How to get a list of files from the archive (rar or zip) attached to the E-mail using Python? That is, I have a EML file. I do not need to unzip the files just to get a list. Theoretically possible option when attached very large file and process the extracted attachments can take a lot of time and resources.
问问题
685 次
2 回答
1
这是使用 stdlib 执行此操作的方法,获取存储为的简单多部分消息中的第一个附件message.eml
:
import email.parser
import StringIO
import zipfile
with open('message.eml') as f:
msg = email.parser.Parser().parse(f)
attachment = msg.get_payload(1)
zipf = StringIO.StringIO(attachment.get_payload())
zip = zipfile.ZipFile(zipf)
filenames = zip.namelist()
这将解析整个 MIME 信封,解码整个附件,并读取该附件的 ZIP 目录……但至少它不会解压缩 ZIP 存档中的任何文件,所以我怀疑你实际上不会有任何性能需要担心的问题。
于 2013-06-28T00:02:34.693 回答
0
这个答案告诉您如何获取文件对象(对于 zip 存档,使用ZipFile 构造函数打开文件,而不是普通的 open() 函数)。然后您可以使用zipfile.namelist()来获取存档成员的名称
于 2013-06-28T00:01:41.807 回答