首页 > 编程知识 正文

如何使用Python批量读取图片名

时间:2023-11-21 04:27:30 阅读:298601 作者:BAEY

Python语言的强大功能使其成为了许多开发工程师的首选语言之一。在这篇文章中,我们将详细介绍如何使用Python批量读取图片名字,从而实现对图片文件的批量操作。下面将从多个方面进行阐述。

一、使用os模块

Python的os模块提供了许多用于处理文件和目录的函数。通过使用os模块,我们可以轻松地读取指定目录下的所有文件,并提取出图片的文件名。

import os

def get_image_names(directory):
    image_names = []
    for file_name in os.listdir(directory):
        if file_name.endswith(".jpg") or file_name.endswith(".png"):
            image_names.append(file_name)
    return image_names

directory_path = "/path/to/directory"    # 指定目录的路径
image_names = get_image_names(directory_path)
print(image_names)

在上面的示例代码中,我们定义了一个函数get_image_names,它接收一个目录路径作为参数,使用os.listdir函数遍历目录中的所有文件名。然后使用endswith方法判断文件名是否以".jpg"".png"结尾,如果是则将其添加到image_names列表中。最后,我们调用该函数并打印结果。

二、使用glob模块

除了使用os模块外,还可以使用Python的glob模块来实现批量读取图片名字的功能。glob模块提供了一种简单直观的方式来匹配文件路径模式。

import glob

def get_image_names(directory):
    pattern = os.path.join(directory, "*.jpg")
    image_names = glob.glob(pattern)
    return [os.path.basename(file_name) for file_name in image_names]

directory_path = "/path/to/directory"    # 指定目录的路径
image_names = get_image_names(directory_path)
print(image_names)

在上面的示例代码中,我们定义了一个函数get_image_names,它接收一个目录路径作为参数。我们使用os.path.join函数拼接目录路径和文件名模式字符串"*.jpg",然后传给glob.glob函数,获取匹配该模式的所有文件路径。最后,使用os.path.basename函数提取出文件名,并返回一个包含所有图片名字的列表。

三、使用正则表达式

如果你对正则表达式较为熟悉,也可以使用正则表达式来匹配文件名中的图片名字。

import re

def get_image_names(directory):
    pattern = r"(w+).(jpg|png)"
    image_names = []
    for file_name in os.listdir(directory):
        match = re.match(pattern, file_name)
        if match:
            image_name = match.group(1)
            image_names.append(image_name)
    return image_names

directory_path = "/path/to/directory"    # 指定目录的路径
image_names = get_image_names(directory_path)
print(image_names)

在上面的示例代码中,我们定义了一个函数get_image_names,它接收一个目录路径作为参数。我们使用正则表达式(w+).(jpg|png)来匹配文件名,并使用re.match函数来进行匹配。如果匹配成功,则通过group(1)方法获取捕获到的图片名字,并将其添加到image_names列表中。

总结

在本文中,我们介绍了三种使用Python批量读取图片名字的方法:使用os模块、使用glob模块以及使用正则表达式。无论是哪种方法,都可以帮助我们快速地获取到指定目录下的图片名字,并进行后续的批量操作。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。