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}")

image

 

image

 

posted @ 2026-09-17 06:40  SuYue2990  Views(9)  Comments(0)    收藏  举报