如何用Python筛选两个文件夹中仅存于图片文件夹的同名异后缀文件?
Python实现:找出无对应同名文本文件的图片文件
实现思路
- 分别读取两个文件夹中的
.jpg图片和.txt文本文件 - 提取每个文件的前缀名称(去掉后缀的部分)
- 对比图片前缀与文本前缀,筛选出仅存在于图片集合中的前缀对应的图片文件
代码实现
import os from glob import glob # 替换为你的实际文件夹路径 image_folder = "./ImageFile" text_folder = "./TextFile" # 获取所有.jpg格式的图片文件名 image_files = [os.path.basename(file) for file in glob(os.path.join(image_folder, "*.jpg"))] # 提取图片文件名的前缀(去除.jpg后缀),用集合存储提升查找效率 image_name_set = {os.path.splitext(img)[0] for img in image_files} # 获取所有.txt格式的文本文件名 text_files = [os.path.basename(file) for file in glob(os.path.join(text_folder, "*.txt"))] # 提取文本文件名的前缀(去除.txt后缀) text_name_set = {os.path.splitext(txt)[0] for txt in text_files} # 筛选出无对应同名文本文件的图片 result = [img for img in image_files if os.path.splitext(img)[0] not in text_name_set] print(result)
代码说明
- 使用
glob模块精准匹配指定后缀的文件,避免文件夹混入其他格式文件时出错 - 集合(
set)的成员查找效率远高于列表,文件数量较多时优势更明显 - 只需修改
image_folder和text_folder为你的实际文件夹路径即可运行
内容的提问来源于stack exchange,提问作者imds_
相关产品推荐
相关产品推荐

