Python查找含指定字符且日期最新的文件夹路径
解决方案
我准备了一个实用的Python实现方案,刚好能满足你的需求——找到指定路径下前缀为4MOX_、日期后缀最新的文件夹:
import os from datetime import datetime # 替换成你的目标路径 target_dir = r"\path\to\folder" # 目标前缀 target_prefix = "4MOX_" # 日期格式,和你的文件夹后缀匹配 date_pattern = "%m-%d-%Y" valid_folders = [] # 遍历路径下的所有条目 for item in os.listdir(target_dir): item_path = os.path.join(target_dir, item) # 先确认是文件夹,且以目标前缀开头 if os.path.isdir(item_path) and item.startswith(target_prefix): # 提取日期部分(去掉前缀后的字符串) date_str = item[len(target_prefix):] try: # 把日期字符串转成datetime对象,方便比较 date_obj = datetime.strptime(date_str, date_pattern) valid_folders.append( (date_obj, item_path) ) except ValueError: # 如果日期格式不对,直接跳过这个文件夹 continue # 找到最新的文件夹 if valid_folders: # 按日期倒序排序,第一个就是最新的 valid_folders.sort(reverse=True, key=lambda x: x[0]) latest_folder = valid_folders[0][1] print(f"找到了最新的4MOX_文件夹:{latest_folder}") else: print("没有找到符合条件的4MOX_文件夹哦")
代码细节说明
- 路径处理:用
r""包裹路径是为了避免Windows路径里的反斜杠被当成转义字符; - 筛选逻辑:先过滤出文件夹和前缀匹配的项,再尝试转换日期格式,确保只保留有效条目;
- 日期比较:把日期转成
datetime对象后,排序就变得非常简单,倒序排列后第一个就是最新的; - 容错处理:加入
try-except捕获日期格式错误的情况,避免因为个别不符合规则的文件夹导致程序报错。
进阶优化(用pathlib更优雅)
如果你用的是Python 3.6及以上版本,推荐用pathlib库来处理路径,代码会更简洁直观:
from pathlib import Path from datetime import datetime target_dir = Path(r"\path\to\folder") target_prefix = "4MOX_" date_pattern = "%m-%d-%Y" valid_folders = [] for folder in target_dir.iterdir(): if folder.is_dir() and folder.name.startswith(target_prefix): date_str = folder.name[len(target_prefix):] try: date_obj = datetime.strptime(date_str, date_pattern) valid_folders.append( (date_obj, folder) ) except ValueError: continue if valid_folders: valid_folders.sort(reverse=True, key=lambda x: x[0]) latest_folder = valid_folders[0][1] print(f"找到了最新的4MOX_文件夹:{latest_folder}") else: print("没有找到符合条件的4MOX_文件夹哦")
pathlib让路径操作更像面向对象的方式,不需要手动拼接路径,可读性更好。
内容的提问来源于stack exchange,提问作者Zhoe
相关产品推荐
相关产品推荐

