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

如何在Python中删除web目录下aus相关的特定模式文件?

解决匹配并删除aus相关文件的问题

原代码的问题

你写的glob.glob("/web/*[aus]", recursive=True)存在匹配逻辑错误:[aus]是字符集匹配规则,会匹配文件名包含a、u、s任意单个字符的文件,而不是包含连续字符串aus的文件,这才导致匹配结果不符合预期。

正确实现方案

下面提供两种可靠的实现方式,都能精准定位并删除目标文件:

方式一:分步匹配+批量删除

import glob
import os

# 1. 匹配所有带aus标识的json文件
aus_json_files = glob.glob("/web/*aus*.json")

# 2. 从json文件名中提取对应的编号(比如1520_22)
target_numbers = []
for json_path in aus_json_files:
    filename = os.path.basename(json_path)
    # 拆分文件名,提取末尾的编号部分
    num_part = "_".join(filename.split("_")[-2:]).replace(".json", "")
    target_numbers.append(num_part)

# 3. 收集所有待删除的文件(aus的json + 对应编号的txt)
files_to_delete = aus_json_files.copy()
for num in target_numbers:
    txt_file = glob.glob(f"/web/{num}.txt")
    files_to_delete.extend(txt_file)

# 4. 执行删除操作
for file_path in files_to_delete:
    os.remove(file_path)

方式二:单循环直接处理(更简洁)

如果确认每个aus的json文件都对应唯一的txt文件,可以直接遍历json文件并构造txt路径:

import glob
import os

for json_path in glob.glob("/web/*aus*.json"):
    # 删除当前aus的json文件
    os.remove(json_path)
    
    # 提取编号并构造对应txt文件的路径
    filename = os.path.basename(json_path)
    num_part = "_".join(filename.split("_")[-2:]).replace(".json", "")
    txt_path = os.path.join("/web", f"{num_part}.txt")
    
    # 检查txt文件存在后删除
    if os.path.exists(txt_path):
        os.remove(txt_path)

关键说明

  • 用*aus*来匹配包含连续aus字符串的文件,这才是你需要的模糊匹配规则
  • 提取编号时通过拆分文件名的方式,确保能精准对应到目标txt文件,避免误删其他文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:43:13