提问人:locolindo 提问时间:11/9/2023 最后编辑:Eugene Astafievlocolindo 更新时间:11/9/2023 访问量:26
使用 Python 访问 Outlook 中的嵌套收件箱文件夹
Accessing nested Inbox folders in Outlook with Python
问:
我正在尝试使用 Python 获取存储在嵌套在收件箱内的 Outlook 子文件夹中的附件。
我们将要访问的文件夹称为“TargetFolder”,将每个子级别称为“子文件夹 1”、“子文件夹 2”等。 我可以让它工作,但我不确定我的代码是否非常有效,因为每次深入子文件夹时都必须声明每个文件夹 - 因此我希望有一种更有效的方法。
目前,我的代码如下所示:
import win32com.client as client # import the library for interacting with Outlook
outlook = client.Dispatch("Outlook.Application")
namespace = outlook.GetNamespace("MAPI")
inbox = namespace.GetDefaultFolder(6) # Default OlDefaultFolders enumeration for "Inbox" (Outlook)
Subfolder1_folder = inbox.Folders["Sub Folder 1"] # First Level
Subfolder2_folder = Subfolder1_folder.Folders["Sub Folder 2"] # Second Level
Subfolder3_folder = Subfolder2_folder.Folders["Sub Folder 3"] # Third Level
Subfolder4_folder = Subfolder3_folder.Folders["Sub Folder 4"] # Fourth Level
TargetFolder = Subfolder4_folder.Folders["Target Folder"] # Target Level
有没有办法写出更好的代码?我试着写“子文件夹 1/子文件夹 2”之类的东西......但我遇到错误
谢谢!!!
答:
0赞
Eugene Astafiev
11/9/2023
#1
Outlook 对象模型不提供任何其他获取子文件夹的方法。无论如何,您都需要处理该物业。Folders
0赞
Dmitry Streblechenko
11/9/2023
#2
首先,您不必声明单独的变量 - 您可以继续重用相同的变量。其次,您可以创建一个采用 Folder 对象和路径(字符串)的函数。它可以从路径中提取文件夹名称,如果仍有路径要处理,则删除当前文件夹的名称,并使用子文件夹和剩余路径调用自身。
评论