如何使用Python中的win32com.client保存outlook的附件?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用Python中的win32com.client保存outlook的附件?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1445字,纯文字阅读大概需要3分钟。
内容图文
![如何使用Python中的win32com.client保存outlook的附件?](/upload/InfoBanner/zyjiaocheng/710/9f4ebc65a5374a08a6ded900558e63be.jpg)
我试图阅读电子邮件并使用Python中的win32com模块将附件下载到我自己的文件夹,我停止获取附件对象:
from win32com.client import Dispatch
import datetime as date
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
val_date = date.date.today()
sub_today = 'Hi'
att_today = 'Attachment.xlsx'
for msg in all_inbox:
if msg.Subject == sub_today:
break
for att in msg.Attachments:
if att.FileName == att_today:
break
att.SaveAsFile('new.xlsx')
att.ExtractFile('new.xlsx')
open(att)
att.WriteToFile('x')
最后4行都没有工作……
>>> att.ExtractFile('new.xlsx')
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.ExtractFile
>>> open(att)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: coercing to Unicode: need string or buffer, instance found
>>> att.WriteToFile('x')
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.WriteToFile
att.SaveAsFile(‘new.xlsx’)没有错误,但工作目录中没有这样的文件.似乎该线被忽略了……
有人可以帮忙吗?提前致谢!
解决方法:
只是为了更新,我通过在SaveAsFile中声明dir和文件名本身来解决这个问题:
att.SaveAsFile(os.getcwd() + '\\new.xlsx')
它不像我在这里看到的大多数线程都说你只需要在其中添加路径.实际上,路径和文件名都是必需的.
另外,奇怪的是,你必须把os.getcwd()放在这里,因为Python不能识别当前运行的dir – 在R中,在我们用getwd()设置工作目录之后,我们能够写入这个位置的任何文件.
干杯,
内容总结
以上是互联网集市为您收集整理的如何使用Python中的win32com.client保存outlook的附件?全部内容,希望文章能够帮你解决如何使用Python中的win32com.client保存outlook的附件?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。