使用 python 删除共享相同名称的文件夹和子文件夹 2.7 - 错误

Delete folders and sub folders sharing the same name using python 2.7 - Error

我尝试删除共享相同文件夹名称的重复文件夹。

所有文件夹分布在一个大文件夹中,该文件夹分为很多子文件夹和子文件夹。在每个子文件夹中都是文件 - 文件的名称以及这些文件是否也在其他文件夹中重复都无关紧要。我不关心文件夹内容。我只需要检查重复的名称文件夹 - 如果有 - 代码将删除重复的文件夹。 我试着写这段代码:

import os,sys,fnmatch,shutil

path = r"G:\desktop\Project\lyr\ab"
groups_list = []
for root, dirs, files in os.walk(path):
    for name in dirs:
        groups_list.append(name)
        print name, 'appears', groups_list.count(name), 'times'
        if groups_list.count(name) >= 2: # if there are 2 or more duplictes
            print name
            shutil.rmtree(path) 

我得到一个错误:

WindowsError: [Error 5] : 'G:\desktop\Project\lyr\ab\6105\5001184\5001184.jpg'

文件夹和子文件夹的顺序是:

在文件夹 6105 和 6195 中有相同的文件夹 name:5001225。我要删除的那个文件夹。

对于这个例子,我展示了一些小例子。实际上,目录 ab 是几个重复的子文件夹。

我变红了 并且我的问题没有答案,因为我需要删除整个重复的文件夹,而且,我不关心文件夹中文件的 size\name 和子文件夹。

这段代码终于对我有用了:

import os,sys,fnmatch,shutil

root = r"G:\desktop\Project\lyr\ab"
groups_list = []
for dirname, dirnames, filenames in os.walk(root):
    for subdirname in dirnames:
        groups_list.append(subdirname)
        if groups_list.count(subdirname) >= 2: # if there are 2 or more duplictes
            dir_to_delete = os.path.join(dirname, subdirname)
            print subdirname, 'appears', groups_list.count(subdirname), 'times'
            print dir_to_delete
            shutil.rmtree(dir_to_delete)