如何使用通配符和 .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 文件,其中包含图像名称中最后一个下划线后面的唯一数字,用于我要删除的图像。
因此文本文件内容可能如下所示:
- 2
- 262
- 278
然后应该从我的文件夹中删除的相应文件是:
- 03_38_25_006892_2.jpg
- 03_38_42_463908_262.jpg
- 03_38_44_015334_278.jpg
到目前为止,我只弄清楚了如何通过给出唯一的最后一位来一次删除一张图像。为此,我成功地使用了这段代码(在 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)
我正在尝试从包含 5000 张图像的文件夹中删除大约 3000 张图像。图像名称如下所示,例如:03_38_25_006892_2.jpg
我有一个 .txt 文件,其中包含图像名称中最后一个下划线后面的唯一数字,用于我要删除的图像。
因此文本文件内容可能如下所示:
- 2
- 262
- 278
然后应该从我的文件夹中删除的相应文件是:
- 03_38_25_006892_2.jpg
- 03_38_42_463908_262.jpg
- 03_38_44_015334_278.jpg
到目前为止,我只弄清楚了如何通过给出唯一的最后一位来一次删除一张图像。为此,我成功地使用了这段代码(在 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)