Получить только текстовые файлы электронной почты и все содержимое других текстовых файлов из каталога, который содержит как электронные письма, так и другие файлы
Я хочу получить только текстовые текстовые файлы электронной почты без тегов и из них, удаляя верхние и нижние колонтитулы и все содержимое других текстовых файлов из каталога, который содержит электронные письма, а также другие файлы. Мой вопрос здесь заключается в том, как правильно использовать содержимое is_multipart и get_payload в коде, чтобы действие выполнялось только для файлов, являющихся сообщениями электронной почты.
import os, sys, csv
import glob
import re
import email
#from tika import parser
import warnings
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim')
from gensim.summarization import summarize, keywords
# Set path to directory where files are
dirs = 'C:\\Users\\Lenovo\\.spyder-py3\\Testing\\'
#os.chdir(dirs)
for filename in glob.glob(os.path.join(dirs, '*.txt')):
try:
for files in filename:
file = open(filename, 'r', encoding ='utf-8')
filecontents = file.read()
filecontents = re.sub(r'\s+', ' ', filecontents)
print(filecontents)
filecontents = filecontents.strip('\n')
b = email.message_from_string(filecontents)
if b.is_multipart():
for payload in b.get_payload():
# if payload.is_multipart(): ...
print (payload.get_payload())
else:
print (b.get_payload())
summary = summarize(filecontents, ratio =0.10)
print(summary)
kw = keywords(filecontents, words=15)
print(kw)
break
#writer.writerow([file, summary, kw])
except Exception as e:
pass