使用 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)
我尝试删除共享相同文件夹名称的重复文件夹。
所有文件夹分布在一个大文件夹中,该文件夹分为很多子文件夹和子文件夹。在每个子文件夹中都是文件 - 文件的名称以及这些文件是否也在其他文件夹中重复都无关紧要。我不关心文件夹内容。我只需要检查重复的名称文件夹 - 如果有 - 代码将删除重复的文件夹。 我试着写这段代码:
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 是几个重复的子文件夹。
我变红了
这段代码终于对我有用了:
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)