Python如何从指定目录中筛选含new且日期匹配当前日期的文件
Python实现方案
实现逻辑分为三步:遍历目标目录下的文件、筛选文件名包含new的条目、对比文件名中的日期与当前日期是否匹配。
完整代码
import os import re from datetime import datetime # 配置项 TARGET_DIR = "/home/user_name/files/" DATE_PATTERN = r"\d{4}-\d{2}-\d{2}" # 获取当前格式化日期 current_date = datetime.today().strftime("%Y-%m-%d") result = [] for file_name in os.listdir(TARGET_DIR): # 跳过子目录,只处理文件 file_full_path = os.path.join(TARGET_DIR, file_name) if not os.path.isfile(file_full_path): continue # 筛选包含new的文件 if "new" not in file_name: continue # 提取文件名中的日期 date_match = re.search(DATE_PATTERN, file_name) if not date_match: continue # 日期匹配则加入结果 if date_match.group() == current_date: result.append(file_name) # 输出匹配结果 print(result)
说明
- 用正则提取日期的写法兼容性更强,不受文件名前后其他字段变动的影响
- 如果你的文件名格式固定为
xxx_new_日期.log,可以把正则提取部分替换为字符串分割,性能更高:# 替换正则匹配的代码段 file_date = file_name.split("_")[-1].rstrip(".log") - 运行时如果当前日期为2021-09-17,输出结果为
['First_new_2021-09-17.log', 'Last_new_2021-09-17.log'],符合预期。
内容的提问来源于stack exchange,提问作者Padfoot123
相关产品推荐
相关产品推荐

