Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未知文件夹上的Python迭代_Python_Loops_Iteration_Pst - Fatal编程技术网

未知文件夹上的Python迭代

未知文件夹上的Python迭代,python,loops,iteration,pst,Python,Loops,Iteration,Pst,我一直在使用redemption dll尝试统计pst文件中的邮件项目。我缺乏python知识,这意味着我目前所做的工作可能会完全遗漏项目。似乎,要迭代pst文件层次结构中的文件夹项目,必须首先通过redemption/Microsoft folder.count枚举文件夹计数。一旦我有了计数编号,我就进入每个文件夹,对该文件夹中的项目进行计数。但是,嵌套的子文件夹结构是可变的,每个文件夹中可能有5个、10个或更多文件夹,我不知道在哪里停止 Inbox Personal Dad Mum

我一直在使用redemption dll尝试统计pst文件中的邮件项目。我缺乏python知识,这意味着我目前所做的工作可能会完全遗漏项目。似乎,要迭代pst文件层次结构中的文件夹项目,必须首先通过redemption/Microsoft folder.count枚举文件夹计数。一旦我有了计数编号,我就进入每个文件夹,对该文件夹中的项目进行计数。但是,嵌套的子文件夹结构是可变的,每个文件夹中可能有5个、10个或更多文件夹,我不知道在哪里停止

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.。在过去的几个小时里,我几乎要用锤子砸我的笔记本电脑了。非常感谢。工作完美。