python 挑选符合条件的文件名复制到另一个文件夹中
我有一堆时间戳文件,寻找夏季6-8月文件到另一个文件夹里
import os import re import shutil from datetime import datetime # ===== 配置 ===== source_dir = r"D:/雨滴谱/原始数据" # 例如 r"D:\data\txt" target_dir = r"D:/雨滴谱/原始数据夏季" # 例如 r"D:\data\summer" # 创建目标文件夹(如果不存在) os.makedirs(target_dir, exist_ok=True) # 匹配文件名中第一个 - 后面的 8 位数字日期,例如 54031-20241127... pattern = re.compile(r"^[^-]+-(\d{8})") count = 0 for filename in os.listdir(source_dir): if not filename.lower().endswith(".txt"): continue match = pattern.match(filename) if not match: print(f"[跳过] 无法识别日期: {filename}") continue date_str = match.group(1) # 例如 "20241127" try: date_obj = datetime.strptime(date_str, "%Y%m%d") except ValueError: print(f"[跳过] 日期格式错误: {filename}") continue # 判断是否为夏季(6、7、8月) if date_obj.month in (6, 7, 8): src_path = os.path.join(source_dir, filename) dst_path = os.path.join(target_dir, filename) # 如果目标已存在,避免覆盖(可选) if os.path.exists(dst_path): base, ext = os.path.splitext(filename) dst_path = os.path.join(target_dir, f"{base}_copy{ext}") shutil.copy2(src_path, dst_path) count += 1 print(f"[复制] {filename} -> {date_str} (月份: {date_obj.month})") print(f"\n完成!共复制 {count} 个文件到:{target_dir}")



浙公网安备 33010602011771号