Python 读取文件夹下的所有图片

介绍

在Python中,我们可以使用os模块和PIL(Python Imaging Library)库来读取文件夹下的所有图片。os模块提供了操作文件和文件夹的功能,而PIL库则用于处理图像。

在本文中,我们将学习如何使用这两个工具来读取文件夹下的所有图片,并将它们加载到Python中进行进一步的处理。

需求分析

我们的目标是读取一个文件夹下的所有图片文件,并将它们加载到Python中。为了实现这个目标,我们需要按照以下步骤进行操作:

  1. 获取文件夹路径
  2. 遍历文件夹下的所有文件
  3. 筛选出图片文件
  4. 加载图片文件到Python中

代码实现

步骤1:获取文件夹路径

首先,我们需要获取要读取的文件夹的路径。可以使用os模块的listdir()函数获取文件夹内的所有文件和文件夹的名称,然后使用os.path模块的join()函数将文件夹路径和文件名拼接起来。

import os

# 文件夹路径
folder_path = './images'  # 请根据实际情况修改路径

步骤2:遍历文件夹下的所有文件

接下来,我们需要使用os.listdir()函数获取文件夹内的所有文件和文件夹的名称,并遍历它们。

file_names = os.listdir(folder_path)

for file_name in file_names:
    # 处理文件
    pass

步骤3:筛选出图片文件

在遍历文件夹内的文件时,我们需要筛选出图片文件。可以通过检查文件的扩展名来判断它是否为图片文件。常见的图片文件扩展名包括.jpg.png.gif等。

image_extensions = ['.jpg', '.jpeg', '.png', '.gif']

for file_name in file_names:
    # 检查文件扩展名
    if os.path.splitext(file_name)[1].lower() in image_extensions:
        # 处理图片文件
        pass

步骤4:加载图片文件到Python中

最后,我们需要将筛选出的图片文件加载到Python中。可以使用PIL库的Image.open()函数打开图片文件,并将其保存在一个列表或其他数据结构中。

from PIL import Image

images = []

for file_name in file_names:
    # 检查文件扩展名
    if os.path.splitext(file_name)[1].lower() in image_extensions:
        # 加载图片文件
        image = Image.open(os.path.join(folder_path, file_name))
        images.append(image)

至此,我们已经完成了读取文件夹下的所有图片的代码实现。

完整代码

下面是完整的代码示例:

import os
from PIL import Image

# 文件夹路径
folder_path = './images'  # 请根据实际情况修改路径

# 图片文件扩展名
image_extensions = ['.jpg', '.jpeg', '.png', '.gif']

# 加载图片文件
images = []

file_names = os.listdir(folder_path)

for file_name in file_names:
    # 检查文件扩展名
    if os.path.splitext(file_name)[1].lower() in image_extensions:
        # 加载图片文件
        image = Image.open(os.path.join(folder_path, file_name))
        images.append(image)

总结

在本文中,我们学习了如何使用os模块和PIL库来读取文件夹下的所有图片。通过获取文件夹路径、遍历文件夹下的所有文件、筛选出图片文件并加载它们到Python中,我们可以很方便地对这些图片进行进一步的处理。

以上是完整的代码示例,希望对你有所帮助!