如何使用 python 3.9 将 .msg outlook 文件转换为 .txt 文件?
How do I convert a .msg outlook file to a .txt file with python 3.9?
请初学者帮助python同学!非常感谢。
我正在尝试自动过滤收件箱中的电子邮件,并将它们另存为指定文件夹中的文本文档。我可以将文件夹中的电子邮件作为 .msg 没问题,但是,当我尝试将其保存为 .txt 文件时,它要么 a) 在我删除 'olTXT' 时无法正常打开,要么 b) 抛出我添加 'olTXT':
时出现以下错误
line 19, in <module>
message.SaveAs(os.getcwd()+'//'+name, olTXT)
NameError: name 'olTXT' is not defined
我正在使用 https://docs.microsoft.com/en-us/office/vba/api/outlook.mailitem.saveas 作为参考。
这是我目前拥有的:
import win32com.client
from win32com.client import Dispatch
import os
import re
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6)
messages = inbox.items
message = messages.GetFirst()
report_subject = "Tech Report"
for message in messages:
if message.subject[0:11] == report_subject:
name = str(message.subject)
#to eliminate any special charecters in the name
name = re.sub('[^A-Za-z0-9]+', '', name)+'.txt'
#to save in the current working directory
message.SaveAs(os.getcwd()+'//'+name, olTXT)
olTxt
为0(olMsg
为3等):
message.SaveAs(os.getcwd()+'//'+name, 0)
尝试添加这个:
OlSaveAsType = {
"olTXT": 0,
"olRTF": 1,
"olTemplate": 2,
"olMSG": 3,
"olDoc": 4,
"olHTML": 5,
"olVCard": 6,
"olVCal": 7,
"olICal": 8
}
# example
message.SaveAs(os.getcwd()+'//'+name, OlSaveAsType['olTXT'])
参考:Outlook.OlSaveAsType.olMSG
你现在的方式是在分配变量 olTXT 之前引用它,这就是你收到错误的原因。
请初学者帮助python同学!非常感谢。
我正在尝试自动过滤收件箱中的电子邮件,并将它们另存为指定文件夹中的文本文档。我可以将文件夹中的电子邮件作为 .msg 没问题,但是,当我尝试将其保存为 .txt 文件时,它要么 a) 在我删除 'olTXT' 时无法正常打开,要么 b) 抛出我添加 'olTXT':
时出现以下错误line 19, in <module>
message.SaveAs(os.getcwd()+'//'+name, olTXT)
NameError: name 'olTXT' is not defined
我正在使用 https://docs.microsoft.com/en-us/office/vba/api/outlook.mailitem.saveas 作为参考。
这是我目前拥有的:
import win32com.client
from win32com.client import Dispatch
import os
import re
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6)
messages = inbox.items
message = messages.GetFirst()
report_subject = "Tech Report"
for message in messages:
if message.subject[0:11] == report_subject:
name = str(message.subject)
#to eliminate any special charecters in the name
name = re.sub('[^A-Za-z0-9]+', '', name)+'.txt'
#to save in the current working directory
message.SaveAs(os.getcwd()+'//'+name, olTXT)
olTxt
为0(olMsg
为3等):
message.SaveAs(os.getcwd()+'//'+name, 0)
尝试添加这个:
OlSaveAsType = {
"olTXT": 0,
"olRTF": 1,
"olTemplate": 2,
"olMSG": 3,
"olDoc": 4,
"olHTML": 5,
"olVCard": 6,
"olVCal": 7,
"olICal": 8
}
# example
message.SaveAs(os.getcwd()+'//'+name, OlSaveAsType['olTXT'])
参考:Outlook.OlSaveAsType.olMSG
你现在的方式是在分配变量 olTXT 之前引用它,这就是你收到错误的原因。