我尝试删除共享同一文件夹名称的重复文件夹。
所有文件夹分布在一个大文件夹中,该文件夹分为许多子文件夹和子子文件夹。在每个子文件夹中都是文件 - 它与文件的名称无关,以及这些文件是否也在其他文件夹中重复。我不关心文件夹内容。我只需要检查重复的名称文件夹 - 如果有 - 代码将删除重复的文件夹。 我尝试编写这段代码:
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中,该文件夹具有相同的名称:5001225。我要删除的文件夹。
对于这个例子,我展示了一些例子。实际上,目录ab是几个重复的子文件夹。
答案 0 :(得分:0)
这段代码最终对我有用:
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)