对python遍历文件夹中的所有jpg文件的实例详解
python发现文件夹下所有的jpg文件,并且安装文件排放的顺序输出 glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:”*”, “?”, “[]”。”*”匹配0个或多个字符;”?”匹配单个字符;”[]”匹配指定范围内的字符,如:[0-9]匹配数字。 glob.glob 返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。 下面是使用glob.glob的例子: Python import glob #获取指定目录下的所有图片 p 在Python编程中,遍历文件夹并处理其中的特定类型文件是一个常见的任务,尤其是在处理大量数据或进行自动化脚本时。本篇文章将详细介绍如何使用Python的`glob`模块来查找和遍历文件夹中的所有`.jpg`图片文件,并提供相关的实例代码。 `glob`模块是Python标准库的一部分,用于搜索符合特定模式的文件路径名。它主要使用通配符(wildcards)进行匹配,通配符包括: 1. `*`:匹配0个或多个任意字符。 2. `?`:匹配单个任意字符。 3. `[ ]`:匹配指定范围内的字符,例如`[0-9]`匹配任何数字。 以下是一个基本的示例,展示如何使用`glob.glob()`函数来获取指定目录下所有`.jpg`文件的路径: ```python import glob # 获取指定目录下的所有.jpg图片 print(glob.glob(r'E:/Picture/*/*.jpg')) ``` 这个例子中,`r'E:/Picture/*/*.jpg'`是一个路径模式,`*`表示任意子目录,第二个`*`表示匹配任何以`.jpg`结尾的文件。 如果文件列表需要按照特定顺序排列,可以结合Python内置的`sort()`函数或者`sorted()`函数实现。下面的代码展示了如何按名称排序得到的文件路径列表: ```python import os import glob WSI_MASK_PATH = r'/home/jpg/' wsi_mask_paths = glob.glob(os.path.join(WSI_MASK_PATH, '*.jpg')) wsi_mask_paths.sort() ``` 在这个例子中,`os.path.join()`函数用于构建完整的文件路径,然后`sort()`函数对结果进行排序。 除了`glob`模块,Python还提供了其他方法来遍历文件夹,例如使用`os`模块的`os.listdir()`和`os.walk()`。`os.listdir()`返回指定目录下的所有文件和子目录的名称,而`os.walk()`则是一个生成器,可以递归地遍历整个目录树。 以下是一个使用`os.listdir()`的示例: ```python import os directory = r'E:/Picture' for filename in sorted(os.listdir(directory)): if filename.endswith('.jpg'): print(os.path.join(directory, filename)) ``` 如果你需要更深度的控制,例如遍历指定深度或忽略某些目录,可以使用`os.walk()`: ```python import os def traverse_directory(path, depth=0): for root, dirs, files in os.walk(path): if depth > 0 and depth == len(root.split(os.sep)): # 当达到指定深度时停止 break for file in sorted(files): if file.endswith('.jpg'): print(os.path.join(root, file)) traverse_directory(r'E:/Picture', depth=2) ``` 这个`traverse_directory`函数接受一个路径和深度参数,当到达指定深度时停止遍历。 Python提供了多种方式来遍历文件夹并处理其中的文件,可以根据具体需求选择合适的方法。无论是`glob`模块的通配符匹配,还是`os`模块提供的列表和递归遍历,都可以有效地帮助我们管理文件系统中的资源。在编写自动化脚本或处理大量数据时,这些工具非常实用。