Python实现搜索并写入文件路径到指定文件的方法

1 下载量 106 浏览量 更新于2024-08-31 收藏 120KB PDF 举报
本文将详细介绍如何使用Python实现搜索指定盘符(例如D盘)上特定后缀(如.jpg, .png)文件,并将这些文件的绝对路径写入到用户指定的文件中。该方法首先定义了所需的库(os 和 time),并设置了几个关键变量,如指定的盘符(DESK)、待创建的信息保存文件(SAVE_FILE)以及要搜索的文件后缀列表(FILE_EXT)。 搜索文件的主要步骤如下: 1. **设置初始变量**:初始化空列表来存储找到的文件和文件夹,记录文件数量(FILES_NUMBER),符合条件的文件数量(RIGHT_FILES_NUMBER)和不符合条件的文件数量(NOT_RIGHT_FILES_NUMBER),以及文件夹数量(DIR_NUMBER)。 2. **定义辅助函数**: - `listdir(dir_path)`:检查给定路径是否存在,如果存在则返回该路径下的所有文件和子目录;如果不存在,返回错误消息。 - `search_files(path, name)`:这个函数负责递归地搜索文件。它首先检查路径是否为文件或文件夹,如果是文件,增加文件计数器并返回True;如果是文件夹,则继续在其中查找符合要求的文件。 3. **主搜索逻辑**: - 使用`os.walk()`遍历指定路径下的所有文件和子目录。 - 对于每个子目录,调用`search_files()`函数进行深度搜索。 - 检查每个找到的文件,如果其扩展名在FILE_EXT列表中,表示找到了符合条件的文件,将其绝对路径追加到结果列表my_files中,并更新RIGHT_FILES_NUMBER。 4. **处理文件写入**: - 在写入文件之前,先确认目标文件(SAVE_FILE)是否存在,若不存在则使用`os.mknod()`创建一个新文件。 - 使用`with open(SAVE_FILE, 'a')`打开文件,以追加模式('a')写入找到的文件路径,每条记录之间用换行符分隔。 - 搜索结束后,更新NOT_RIGHT_FILES_NUMBER,记录未匹配后缀的文件数量。 5. **运行效果示例**: - 文章没有提供具体的运行效果前半部分,但我们可以推测这部分可能展示了搜索开始时的命令行提示,或者对文件结构的预览。 - 后半部分可能会展示搜索完成后,保存文件的大小、包含的文件数量以及文件路径的具体内容。 6. **代码执行**: - 调用`search_files(DESK, '')`开始搜索,空字符串表示从根目录开始搜索。 总结来说,这个Python脚本通过使用os模块提供的函数实现了在指定盘符下搜索指定后缀的文件,并将这些文件信息写入用户指定的文本文件中,确保文件不存在时会自动生成。这对于自动化文件管理或者批量记录文件信息非常有用。