应用于多个文件或文件夹的Python代码

应用于多个文件或文件夹的Python代码,python,email,Python,Email,我对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.

我对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

看一看,它做了你想要的。

看一看,它做了你想要的。

使用os.listdir将所有内容放入for循环:

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

使用
os.listdir
将所有内容放入for循环:

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

阅读python函数。第一步是将此代码读入一个函数,该函数接受文件名作为输入。第一步是将此代码读入一个函数,该函数接受文件名作为输入。但是你确实做了很多文件操作,非常小但非常棒的path.py库是你的朋友。这只是一个文件(),通过对路径('/your/path')中的d执行
,可以在所有dir上递归,这是非常了不起的。但是你确实做了很多文件操作,非常小但非常棒的path.py库是你的朋友。这只是一个文件(),通过对路径('/your/path')中的d执行
,可以在所有dir上递归,这是非常了不起的。walkdirs()'