每个文件夹内有多张图片,给定一个 txt 文件列表,包含要删除的图片名字。我们需要在所有图片中找到并删除这些图片。
import os
#定义一个返回所有图片绝对路径的函数
def all_path(dirname):
result = []
for maindir, subdir, file_name_list in os.walk(dirname):
for filename in file_name_list:
apath = os.path.join(maindir, filename)
result.append(apath)
return result
def main():
path = '/media/dell/2T/dataset/201906/train/'
list1 = all_path(path)
remove_path = '/media/dell/2T/dataset/201906/train/0.txt'
with open(remove_path) as f:
list2 = list(map(lambda s:s.strip(), f.readlines()))
#得到所有图片的名字并添加到list3中
list3 = []
for i in range(len(list1)):
line = os.path.split(list1[i])[-1].split('/')[0]
fname = os.path.splitext(line)[0]
list3.append(fname)
#将需要删除的图片的路径添加到list4中
list4 = []
for j in range(len(list3)):
for k in range(len(list2)):
if list3[j] == list2[k]:
out_path = list1[j]
list4.append(out_path)
for n in range(len(list4)):
os.remove(list4[n])
if __name__ == '__main__':
main()
版权声明:本文为CSDN博主「橘也」的原创文章。
原文链接:https://blog.csdn.net/qq_45057749/article/details/92850516