在处理之前检查 png 图像和 csv 文件是否具有相同的名称

Check that png image and csv file has the same name before processing them

我有一个由图像和 csv 文件组成的数据集(5000 个数据)。每个图像都映射有它的 csv 文件。例如 img_33e_78.png 映射为 img_33e_78.csv。 对于每个图像,我都有一个 csv 文件,其中包含要处理的给定像素。 为此,我需要检查我是否使用正确的 csv 文件处理图像。这就是为什么我需要检查图像和 csv 的名称。区别仅在于 .png.csv。 这是我的代码:

import os
import glob
import pandas as pd
import h5py


indir_images="image"
os.chdir(indir_images)
images_name=glob.glob("*.png")


indir_csv="clean_data"
os.chdir(indir_csv)
csv_names=glob.glob("*.csv")

for img,csv in zip(images_name,csv_names):
    if (image_name == csv_name) #here l need to ckeck that the image and csv file have the same name
        # do the processing

我想我会先制作一组您的图像和 csv 文件。我删除了文件扩展名,因为它们是比较文件的真正问题。 这是使用列表推导式完成的。也可以使用地图来完成。

image_names = set([x.rsplit('.', 1)[0] for x in glob.glob('*.png')])
csv_names = set([x.rsplit('.', 1)[0] for x in glob.glob('*.csv')])
# Alternatively using map
image_names = set(map(lambda x: x.rsplit('.', 1)[0], glob.glob('*.png'))

然后我们用我们知道我们两者都有的那些做一个超集。 https://docs.python.org/2/library/sets.html#set-objects

for name in image_names & csv_names:
    open(name+'.jpg)
    etc...

这样你就知道你拥有所有匹配的文件。