【问题标题】:Win32 error: Object has no attribute 'folders'Win32 错误:对象没有属性“文件夹”
【发布时间】:2020-01-28 15:09:27
【问题描述】:

我在使用 python 的 Win32 的 Outlook .folders 中遇到错误。

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.folders("X").folders("X").folders("X")

错误:

Traceback(最近一次调用最后一次): 文件“X”,第 34 行,在 收件箱 = outlook.folders("X").folders("X").folders("X") getattr 中的文件“C:\X\X\X\X\X\Python\Python38\lib\site-packages\win32com\client__init__.py”,第 473 行 raise AttributeError("'%s' 对象没有属性 '%s'" % (repr(self), attr)) AttributeError:''对象没有属性'文件夹'

这很奇怪,因为该脚本有时可以在我的机器上运行,并且似乎在我同事的机器上运行没有问题。

我在跑步:

  • Python 3.8.1
  • pywin32 227

更新:我注意到当我重新启动计算机时我能够运行一次脚本。第二次尝试时出现错误。

【问题讨论】:

    标签: python outlook pywin32


    【解决方案1】:

    错误消息中的脚本与您在上面发布的脚本不匹配。错误信息:

    收件箱 = 帐户.folders("X").folders("X").folders("X")

    你的脚本:

    收件箱 = outlook.folders("X").folders("X").folders("X")

    另外,尽量使用Folders.Item函数而不是依赖默认属性:

    收件箱 = outlook.folders.Item("X").folders.Item("X").folders.Item("X")

    【讨论】:

    • 感谢您的指出。我尝试了很多东西,但在发布之前忘记了还原!我更新了错误消息。
    • 尝试将该语句分解为多个语句 - 如果其中一个文件夹不存在,您将收到错误消息。请记住,顶级文件夹实际上是存储名称(例如“user@domain.com”)
    • 感谢您的回答,我分别尝试了每个文件夹,但我被阻止了:对象没有属性“文件夹”
    • 尝试用 Folder.Item("X") 替换文件夹
    • 有效!你知道为什么它在没有“项目”的情况下间歇性地工作吗?
    猜你喜欢
    • 1970-01-01
    • 2018-05-21
    • 2014-05-14
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多