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

在R中按条件删除文件:保留同类连续文件的前两个

按规则筛选时序文件的实现方案

需求梳理

给定一批按时间顺序排列的时序文件名,需实现:

  • 仅保留连续出现的同结尾(A/B/C)文件中的前2个
  • 若连续同结尾文件达到3个及以上,删除第3个及之后的同类文件(如示例中的L1_0101_0619_A、L1_0101_0649_A)

实现思路

  1. 确保输入的文件名列表已按时序排序,这是处理的前提
  2. 维护两个状态变量:当前跟踪的结尾字符、该字符连续出现的次数
  3. 遍历每个文件时:
    • 提取文件名末尾的标识字符(A/B/C)
    • 若与当前跟踪字符一致,连续计数+1;若不一致,重置跟踪字符和计数为当前文件的标识与1
    • 仅保留连续计数≤2的文件

Python 示例代码

# 输入的时序文件名列表(需确保已按时间排序)
file_list = [
    "L1_0101_0601_A",
    "L1_0101_0603_A",
    "L1_0101_0605_B",
    "L1_0101_0608_B",
    "L1_0101_0610_C",
    "L1_0101_0612_C",
    "L1_0101_0615_A",
    "L1_0101_0617_A",
    "L1_0101_0619_A",
    "L1_0101_0622_B",
    "L1_0101_0624_B",
    "L1_0101_0626_C",
    "L1_0101_0629_C",
    "L1_0101_0631_A",
    "L1_0101_0633_A",
    "L1_0101_0635_B",
    "L1_0101_0638_B",
    "L1_0101_0640_C",
    "L1_0101_0642_C",
    "L1_0101_0645_A",
    "L1_0101_0647_A",
    "L1_0101_0649_A"
]

# 初始化状态变量
current_suffix = None
count = 0
keep_files = []
delete_files = []

for file in file_list:
    # 提取末尾的标识字符
    suffix = file.split("_")[-1]
    if suffix == current_suffix:
        count += 1
    else:
        current_suffix = suffix
        count = 1
    # 判断是否保留
    if count <= 2:
        keep_files.append(file)
    else:
        delete_files.append(file)

# 输出结果
print("保留的文件:")
for f in keep_files:
    print(f"- {f}")

print("\n需要删除的文件:")
for f in delete_files:
    print(f"- {f}")

执行结果

保留的文件

  • L1_0101_0601_A
  • L1_0101_0603_A
  • L1_0101_0605_B
  • L1_0101_0608_B
  • L1_0101_0610_C
  • L1_0101_0612_C
  • L1_0101_0615_A
  • L1_0101_0617_A
  • L1_0101_0622_B
  • L1_0101_0624_B
  • L1_0101_0626_C
  • L1_0101_0629_C
  • L1_0101_0631_A
  • L1_0101_0633_A
  • L1_0101_0635_B
  • L1_0101_0638_B
  • L1_0101_0640_C
  • L1_0101_0642_C
  • L1_0101_0645_A
  • L1_0101_0647_A

需要删除的文件

  • L1_0101_0619_A
  • L1_0101_0649_A

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:20:24