python - 在 Python 中提取多个图像文件名中的详细信息并将它们添加为数据集的标签

标签 python extract filenames

我有一个包含 1300 个 .JPEG 文件的文件夹,所有这些文件的文件名都按特定顺序排列。

每个文件名的顺序是category_count_randomString.JPEG。举个例子,下面是文件夹中的一张图片:

13_2_5jdf.JPEG 其中 13 是类别,2 是图像中该类别的计数,后跟随机字符串。

我希望能够:

  1. 从每个文件名中提取类别并将它们分配为标签(然后构建 CNN 模型)和
  2. 从每个文件名中提取类别的计数,并将它们分配给向量/数组。

现在,我刚刚使用 glob 函数加载了图像(尚未作为数组)。

import glob

data = '/Users/Data'

images = glob.glob(data+'/*.JPEG')

我是编码新手,所以我正在寻找能够提供“防白痴”编码行的人,我可以将它们合并到我的笔记本中以完成这项工作。

最佳答案

您可以使用 os 获取数据目录中所有文件的列表,并使用 split 命令获取文件名中的信息:

import os

data_path = "/Users/Data"

categories = []
counts = []
rand_strs = []

for img_filename in os.listdir(data_path):
    if img_filename.endswith(".JPEG"):
        category, count, rand_str = img_filename.split('.')[0].split('_')
        categories.append(category)
        counts.append(int(count))
        rand_strs.append(rand_str)

然后每个列表的索引相同,因此例如,如果您想知道类别 13 有多少计数,您可以这样做

category_idx = categories.index('13')
print "Category %s has %d elements" % (categories[category_idx], counts[category_idx])

关于python - 在 Python 中提取多个图像文件名中的详细信息并将它们添加为数据集的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52658094/

相关文章:

Javascript - 如何从文件输入控件中提取文件名

java - 访问 PDF 中的字体文件

Android获取日期并插入文件名

c - 在 C 中处理带空格的文件名

python - 如何使用 Python 分隔文件名的数字部分?

python - 无法导入模块

python - 如何使用 assertRaises() 对 python 类的 __init__() 方法进行单元测试?

r - 从 n 行的字符串中提取一个单词并将该单词附加为 R 中的新列

python - 根据 ndarray 中的索引设置值的通用方法?

python - 在 Tempo/Jira 中查找所有团队的成员