本文共 1295 字,大约阅读时间需要 4 分钟。
对于这个命题,通常有两种理解方式:找出指定文件夹下的图片,以及找出指定文件夹及其子文件夹下的图片。这两种理解方式主要区别在于,第二种情况需要考虑子文件夹下的图片是否需要包含在结果中。以下将分别详细说明两种方法。
指定文件夹路径可以是绝对路径或相对路径。例如:
os.listdir(r'C:\Users\desktop\pictures')os.listdir('./images/') 绝对路径需要注意反斜杠的书写方式,而相对路径则更灵活。
使用os.listdir()函数可以获取指定文件夹包含的文件或文件夹名称列表。该函数返回的结果是一个包含文件和子文件夹名称的列表。
为了筛选出图片文件,可以根据文件名的后缀进行判断。例如:
import osdef find_images(folder_path): image_suffixes = ('.jpg', '.png', '.jpeg') for filename in os.listdir(folder_path): if filename.lower().endswith(image_suffixes): print(f"Found image: {filename}") 这里使用了endswith()函数来判断文件名是否以指定后缀结尾,并将符合条件的文件名打印出来。
使用os.walk()函数可以遍历指定文件夹及其所有子文件夹。os.walk()返回一个遍历器,其中包含当前文件夹、子文件夹以及它们下的文件信息。
例如:
import osdef find_images_in_subfolders(folder_path): image_suffixes = ('.jpg', '.png', '.jpeg') for root, dirs, files in os.walk(folder_path): for filename in files: if filename.lower().endswith(image_suffixes): print(f"Found image: {filename}") 这里的root变量表示当前遍历的文件夹路径,dirs是当前文件夹下的子文件夹名称,files是当前文件夹下的文件名称。
可以选择是否递归遍历子文件夹。例如:
os.walk(r'C:\Users\desktop\pictures', recursive=True)
递归遍历会包含所有子文件夹下的文件,而非递归只遍历当前层次的文件夹。
通过以上方法,可以根据具体需求选择适当的遍历方式来筛选出目标文件夹及其子文件夹下的图片。
转载地址:http://tyofk.baihongyu.com/