Python 将包含18000个电子邮件文本文件的文件夹传递到函数中,以提取文本中的所有电子邮件和主题
我定义了一个函数,我想用它来提取电子邮件并将其存储在列表中,还想从包含大量电子邮件的文件夹中提取主题作为文本文件。功能是:Python 将包含18000个电子邮件文本文件的文件夹传递到函数中,以提取文本中的所有电子邮件和主题,python,regex,Python,Regex,我定义了一个函数,我想用它来提取电子邮件并将其存储在列表中,还想从包含大量电子邮件的文件夹中提取主题作为文本文件。功能是: def preprocess(text): em =[] st ="" for i in re.findall(r'[\w\-\.]+@[\w\.-]+\b', text): temp =[] temp = i.split('@')[1] temp = temp.split('.')
def preprocess(text):
em =[]
st =""
for i in re.findall(r'[\w\-\.]+@[\w\.-]+\b', text):
temp =[]
temp = i.split('@')[1]
temp = temp.split('.')
if 'com' in temp:
temp.remove('com')
for i in temp:
if len(i) >2:
em.append(i)
for i in em:
st +=i
st += " "
return em,st
要在上述函数中传递每个文本文件,我执行了以下操作:
os.chdir(path)
myFiles = glob.glob('*.txt')
print(type(myFiles))
for text in myFiles:
email_list,subject = preprocess(text)
我得到的输出是一个空的
电子邮件列表
和一个空的主题
,但当我传递一个文本文件时,函数会给出输出。如何在函数中传递文件夹中的所有文本文件,以便从每个文本文件中提取电子邮件和主题?您可以在
打开(路径)作为fh:
#在这里与fh合作
文件类可以通过行进行编辑,因此您可以通过这种方式查找电子邮件
results={}
对于路径中的路径:
结果[路径]={}
开放(路径)为fh时:
对于fh中的线路:
如果主题:=测试主题(行):
结果[路径][“主题”]=主题
继续#试试下一行
#电子邮件测试
考虑到主题和电子邮件的收集或电子邮件中的已知点
您何时读取文件内容?目前,您似乎正在调用带有文件路径的函数。这就是我想知道的。谢谢您的回复,我必须使用我上面写的函数,因为我以后必须编辑它以预处理文本,我的问题是我的桌面上有一个文件夹,其中有18000封电子邮件作为tect文件,如何使用该文件夹或将其传递给我定义的函数