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

如何在Python中检测当前目录CSV文件存在并按需删除?

检测当前目录下日期命名CSV文件的Python实现

当然可以实现这个需求!而且不一定非得用正则表达式,根据你的场景不同,有两种实用方案可选:

方案一:简单匹配所有CSV文件(无需正则)

如果你的当前目录里只会生成日期命名的CSV文件,没有其他无关的CSV,那用glob模块就足够简单高效了。它能直接匹配所有.csv后缀的文件,不用关心具体文件名:

import glob
import os

def check_and_clean_csv():
    # 获取当前目录下所有CSV文件的列表
    csv_files = glob.glob('*.csv')
    
    if csv_files:
        # 存在目标文件,执行assertTrue并删除文件
        assert True, "检测到CSV文件,执行断言成功"
        for file_path in csv_files:
            os.remove(file_path)
            print(f"已删除文件: {file_path}")
    else:
        # 不存在则执行assertFalse
        assert False, "未检测到CSV文件,执行断言失败"

方案二:用正则精准匹配日期命名的CSV

如果你的目录里可能混有其他非日期命名的CSV文件,那正则表达式就能帮你精准筛选出目标文件。比如假设你的日期格式是YYYY-MM-DD_HH-MM-SS.csv(可以根据实际命名格式调整正则规则):

import os
import re

def check_and_clean_date_csv():
    # 定义日期文件名的正则规则(根据你的实际命名格式修改)
    date_file_pattern = re.compile(r'^\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}\.csv$')
    target_files = []
    
    # 遍历当前目录下的所有条目
    for item in os.listdir('.'):
        # 确认是文件且符合日期命名规则
        if os.path.isfile(item) and date_file_pattern.match(item):
            target_files.append(item)
    
    if target_files:
        assert True, "检测到日期命名的CSV文件,断言成功"
        for file_path in target_files:
            os.remove(file_path)
            print(f"已删除日期命名文件: {file_path}")
    else:
        assert False, "未检测到日期命名的CSV文件,断言失败"

总结

  • Python完全能满足你的需求,不是必须用正则表达式:
    • 场景简单(无其他CSV干扰)时,glob是最省心的选择;
    • 需要精准筛选日期格式文件时,正则能帮你避免误操作。

内容的提问来源于stack exchange,提问作者Triguna

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:56:42