Python如何扫描目录下文件夹并获取末尾数字最大的文件夹
功能实现代码及说明
下方是可直接运行的实现,适配你提到的folder_数字格式的命名规则,同时修正了原有代码的语法和逻辑错误:
import os import re # 根路径配置,路径前加r可避免Windows反斜杠的字符转义问题 root_path = r"N:\QA\Automation\Projects\AT_Projects" # 遍历根路径下的所有项目 for project in os.listdir(root_path): project_dir = os.path.join(root_path, project) # 跳过非目录类文件 if not os.path.isdir(project_dir): continue max_num = -1 target_folder = "" # 遍历当前项目下的所有文件夹 for folder_name in os.listdir(project_dir): folder_full_path = os.path.join(project_dir, folder_name) if not os.path.isdir(folder_full_path): continue # 提取文件夹名称末尾的数字,适配xxx_123的格式 match = re.search(r'_(\d+)$', folder_name) if not match: # 名称不符合规则的文件夹直接跳过 continue folder_num = int(match.group(1)) # 比对数字,更新最大数字对应的文件夹路径 if folder_num > max_num: max_num = folder_num target_folder = folder_full_path if max_num == -1: print(f"项目 {project} 下未找到符合命名规则的文件夹") continue # 此处添加操作目标文件夹的逻辑,示例为打印路径 print(f"项目 {project} 下末尾数字最大的文件夹为:{target_folder}") # 进入文件夹获取内容的代码可写在下方,比如遍历该文件夹下所有文件: # for file in os.listdir(target_folder): # print(os.path.join(target_folder, file))
关键逻辑说明
- 路径拼接统一使用
os.path.join(),避免Windows和Linux系统的路径分隔符差异问题 - 如果你使用的命名规则没有下划线(比如
folder123),把提取数字的正则改成r'(\d+)$'即可 - 程序会自动跳过不符合命名规则、非目录的文件,不会抛出运行异常
- 找到目标文件夹后,直接在标注位置添加你需要的文件读取、处理逻辑即可
内容的提问来源于stack exchange,提问作者Bar Ben-ezra
相关产品推荐
相关产品推荐

