如何在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是最省心的选择; - 需要精准筛选日期格式文件时,正则能帮你避免误操作。
- 场景简单(无其他CSV干扰)时,
内容的提问来源于stack exchange,提问作者Triguna
相关产品推荐
相关产品推荐

