我有一個包含數千個影像檔案(全部為 .jpg)的檔案夾。我只想選擇這些影像的特定子集并將它們加載到我的程式中以進行人臉識別應用程式。我有這個程序的以下代碼片段:
from PIL import Image
import os, os.path
images = []
path = "/path/to/images"
wanted_images = ["What goes in here?"]
for i in os.listdir(path):
ext = os.path.splitext(i)[1]
if ext.lower() not in wanted_images:
continue
images.append(Image.open(os.path.join(path,i)))
有沒有一種聰明的方法來管理“這里有什么?” 部分代碼?本質上,這些影像被標記為“1_1.jpg”、...、“1_20.jpg”、“2_1.jpg”、...、“2_20.jpg”、“3_1.jpg”、...、“3_20” .jpg",...,"100_1.jpg",...,"100_20.jpg"。我只想選擇標有“1_11.jpg”、“2_11.jpg”、“3_11.jpg”、...、“100_11.jpg”的影像。
uj5u.com熱心網友回復:
為了打開所有基本名稱以“_11.jpg”結尾的影像,您可以這樣做:
from PIL import Image
from glob import glob
from os import path
directory = '<your directory>'
images = [Image.open(jpg) for jpg in glob(path.join(directory, '*_11.jpg'))]
請注意,模式匹配區分大小寫,因此它不會識別以 .JPG 結尾的檔案
uj5u.com熱心網友回復:
這樣的事情可能會奏效。Glob可以幫助您根據模式選擇路徑。內置的 pathlib 庫很好地支持 glob 模式。
from PIL import Image
from pathlib import Path
images = []
path = "/path/to/images"
for p in Path(path).glob("**/*_11.jpg"):
images.append(Image.open(str(p)))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/451309.html
