我有一个列表,用于处理目录上的一系列任务。有时,该过程会卡在某个目录中。目前我正在删除该元素并通过列表重新运行该过程。然而,这需要一段时间。
这是我现在正在做的事情:
directories = next(os.walk('/home'))[1]
directories.remove('brokendirectory')
process_directory(directory)
我想要做的是删除每个目录,包括损坏的目录,并且只在该损坏目录之后的目录列表上工作。像这样的东西:
def clear_list(directories, element):
new_list = []
for directory in directories:
if directory == element:
break
else:
new_list.append(directory)
return(new_list)
directories = next(os.walk('/home'))[1]
new_directories = clear_list(directories,'brokendirectory')
process_directory(new_directories)
显然,我的函数不能按原样工作。
如何删除列表中的所有元素,包括指定的元素并返回一个新列表进行处理?
最佳答案
您可以使用列表的 index 方法找到所需元素的索引,然后使用切片删除所有元素,包括它。
directories = directories[directories.index('brokendirectory')+1:]
关于Python在特定元素之前删除列表中的所有元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54367928/