如何使用通配符和 .txt 文件中的唯一 ID 列表从文件夹中删除多个图像?

How can I delete multiple images from a folder using wildcards and a list of unique ids in a .txt file?

我正在尝试从包含 5000 张图像的文件夹中删除大约 3000 张图像。图像名称如下所示,例如:03_38_25_006892_2.jpg

我有一个 .txt 文件,其中包含图像名称中最后一个下划线后面的唯一数字,用于我要删除的图像。

因此文本文件内容可能如下所示:

然后应该从我的文件夹中删除的相应文件是:

到目前为止,我只弄清楚了如何通过给出唯一的最后一位来一次删除一张图像。为此,我成功地使用了这段代码(在 Windows 10 PC 上通过 JupyterLab 使用 Python):

import os
import glob

path = "C:L1/L2/L3/test3/*_2.jpg"
for file in glob.glob(path):
    os.remove(file)

但是有什么方法可以让我使用这个 .txt 文件,我必须一次从文件夹中删除所有图像?

使用 open("your_text.txt") 以列表形式读取 txt,使用 .rstrip() 删除行尾的 \n。迭代到您的函数以删除文件。

import os
import glob

final_digits = [line.rstrip() for line in open("your_text.txt")]

for digit in final_digits:
    path = "C:L1/L2/L3/test3/*_{}.jpg".format(digit)
    for file in glob.glob(path):
        os.remove(file)