You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 21:39:01