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

如何用Python从TXT文件提取生成Points与Summary集合?

分阶段提取多组数据的解决方案

你当前的代码读到第一个空行就终止了循环,所以只能处理NAMES部分。要提取后续的POINTS和SUMMARY数据,可以用状态跟踪的方式,遍历整个文件时记录当前正在收集哪一组数据,具体实现如下:

完整可运行代码

names = set()
points = set()
summary = set()
current_collection = None

# 使用with语句自动管理文件资源,更安全
with open('handout_example.txt', 'r') as f:
    for line in f:
        cleaned_line = line.strip()
        # 跳过空行,同时重置当前收集的目标集合
        if not cleaned_line:
            current_collection = None
            continue
        
        # 根据标题切换要收集的集合
        if cleaned_line == 'NAMES':
            current_collection = names
        elif cleaned_line == 'POINTS':
            current_collection = points
        elif cleaned_line == 'SUMMARY':
            current_collection = summary
        # 如果当前有明确的收集目标,就把内容加入对应集合
        elif current_collection is not None:
            current_collection.add(cleaned_line)

# 输出验证结果
print("Names集合:", names)
print("Points集合:", points)
print("Summary集合:", summary)

代码逻辑说明

  • current_collection变量是核心:它会随着文件中的标题行切换指向,确保每一行数据都被加到正确的集合里。
  • 遇到空行时重置current_collection,避免把下一个标题误当成数据内容。
  • 用with语句打开文件,无需手动调用close(),能避免忘记关闭文件导致的资源泄漏问题。

这种方式逻辑清晰,就算以后文件里新增其他分组(比如新增"RANK"标题),只要加个对应的集合和判断分支就能轻松扩展。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:55:36