未知文件夹上的Python迭代
我一直在使用redemption dll尝试统计pst文件中的邮件项目。我缺乏python知识,这意味着我目前所做的工作可能会完全遗漏项目。似乎,要迭代pst文件层次结构中的文件夹项目,必须首先通过redemption/Microsoft folder.count枚举文件夹计数。一旦我有了计数编号,我就进入每个文件夹,对该文件夹中的项目进行计数。但是,嵌套的子文件夹结构是可变的,每个文件夹中可能有5个、10个或更多文件夹,我不知道在哪里停止未知文件夹上的Python迭代,python,loops,iteration,pst,Python,Loops,Iteration,Pst,我一直在使用redemption dll尝试统计pst文件中的邮件项目。我缺乏python知识,这意味着我目前所做的工作可能会完全遗漏项目。似乎,要迭代pst文件层次结构中的文件夹项目,必须首先通过redemption/Microsoft folder.count枚举文件夹计数。一旦我有了计数编号,我就进入每个文件夹,对该文件夹中的项目进行计数。但是,嵌套的子文件夹结构是可变的,每个文件夹中可能有5个、10个或更多文件夹,我不知道在哪里停止 Inbox Personal Dad Mum
Inbox
Personal
Dad
Mum
Work
Sent items
Archive
Old Mail
Outbox
Junk Items
我一直在使用for循环;类似于这样的操作可以对子文件夹进行计数,并且如果计数不是0,则可以降序对文件夹项目进行计数
If folder is not 0:
for folder in range(root.folders.count):
folder+=1
messageITEMS=root.folders(folder).item.count
但这可能意味着我错过了pst层次结构中的某个子文件夹。我需要继续循环,从一个文件夹到另一个文件夹,直到子文件夹计数=0。我已经读了一遍,但是我对python知识的缺乏让我看不到这是否是正确的答案,或者我如何使用它来实现我所需要的;这是为了确保我统计了pst中每个文件夹中的所有邮件。非常感谢您的帮助。谢谢听起来你想把所有目录和子目录中的邮件数量加起来。 文件夹目录实际上是一棵树——一个文件夹可以包含多个分支文件夹。遍历树最好通过递归完成
def count_messages(folder):
messages = folder.item.count
for sub_folder in folder.folders:
messages += count_messages(sub_folder)
return messages
total_messages = count_messages(root)
Gaaaa!!这就是为什么我喜欢这个网站。很明显,现在你已经写了@Kevin.。在过去的几个小时里,我几乎要用锤子砸我的笔记本电脑了。非常感谢。工作完美。