0

我对 Python 很陌生,我创建了一些简单的 Python 代码(如下)来打印(或返回).eml 文件的正文、主题和电子邮件地址。这工作正常。但是,如何将此代码应用于 .eml 文件的文件夹?

import email

fp = open('C:\emlfiles\TEST_00000.eml')

msg = email.message_from_file(fp)

subject = msg.get('subject')
subject = str(subject)
fromAdd = msg.get('from')
fromAdd = str(fromAdd)
payload = msg.get_payload()
if type(payload) == type(list()) :
    payload = payload[0] 
if type(payload) != type('') :
    payload = str(payload)

print subhec + fromAdd + payload
4

2 回答 2

2

看看os.walk,它做你想要的。

于 2013-01-31T15:35:46.667 回答
1

使用以下命令将所有内容放入 for 循环中os.listdir

import email

infolder = "C:\\emlfiles\\"
for infile in os.listdir(infolder):
    fp = open(os.path.join(infolder, infile))
    msg = email.message_from_file(fp)
    # etc

也许更好的是将该代码包装在一个函数中,然后调用它:

def process_email(infile):
    fp = open(infile)
    msg = email.message_from_file(fp)
    subject = msg.get('subject')

infolder = "C:\\emlfiles\\"
for infile in os.listdir(infolder):
    process_email(os.path.join(infolder, infile))
于 2013-01-31T15:37:59.170 回答