晚上好。我正在研究一些代码,它们将从JPEG图像中收集EXIF数据并使用Python v2.x将其存储在MySQL数据库中。绊脚石在于,JPEG分散在许多子目录和更多子目录中所以例如200个JPEG可能存储在root> subroot> subsubroot1中,另外100个存储在root> subroot> subroot2中。一旦所有图像被识别出来,它们将被扫描,并且它们各自的EXIF数据在被添加到MySQL表之前被抽象化。递归搜索和MySql比较
目前我只是在计划阶段,但我只是想知道,执行递归搜索最有效和最蟒蛇的方法是什么?我正在查找扫描根目录并将任何新识别的子目录附加到列表中,然后扫描列表中的所有子目录路径以获取更多子目录,直到获得所有目录的全部列表。这似乎是一个笨拙的方式,虽然恕我直言,有点重复,所以我认为可能有更多的OOP方式来执行此功能。
同样,我只是想添加新的信息到我的MySQL表,所以如果一个条目已经存在,那么最有效的方法是什么?表格和JPEG文件名中的文件名都是其MD5哈希值。我正在考虑在代码的开头扫描整个表格,并将所有文件名放在一个集合中,因此,在扫描新的JPEG之前,如果该集合中已经存在一个条目,则不需要提取EXIF并移至下一张照片。这是一种有效的方法,或者在遇到新图像时通过MySQL表扫描会更好吗?我预计set方法可能是最有效的,但是表最终可能最终包含数以千万计的条目,因此将这些条目的文件名添加到集合(易失性存储器)中可能不是最好的主意。
谢谢大家。