首页 > 解决方案 > 如何使用 GetDefaultFolder 获取特定文件夹并删除它创建的不需要的文件夹

问题描述

我试图弄清楚如何使用 Python 程序访问我的文件夹(请参阅这个SO 答案。)当我运行这个时:

outlook = win32com.client.Dispatch("Outlook.Application")
namespace = outlook.GetNamespace("MAPI")
for i in range(50):
    try:print(i,namespace.GetDefaultFolder(i).Name)
    except:pass

上述程序显示或创建了一些我无法弄清楚如何删除的文件夹,例如:

除了无法删除这些文件夹之外,我实际上还没有以编程方式找到我正在寻找的文件夹。在 Outlook 中,我创建的文件夹与收件箱、已发送邮件等处于同一级别...但我不知道如何访问这些文件夹的父文件夹。

我的文件夹结构:

标签: pythonoutlookdirectory

解决方案


GetDefaultFolder的论点是一个枚举。您可以使用文档中礼貌给出的数值,

或者,根据使用 Python 和 win32com 在 Excel COM 中访问枚举常量,通过符号值访问它:

#need to only do this once per machine; after that, a regular Dispatch will do
o = win32com.client.gencache.EnsureDispatch("Outlook.Application")

from win32com.client import constants
o.GetDefaultFolder(constants.olFolderContacts)

如您所见,访问尚不存在的默认文件夹会创建它。有关如何处理它们,请参见例如如何隐藏或删除 Outlook 的默认文件夹。


推荐阅读