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

Python文本过滤与提取功能实现求助

Python文本过滤与提取功能实现求助

嘿,兄弟,我太懂你刚接触编码时碰到这种批量文本提取问题的头疼了!别慌,咱们一步步来搞定这个需求。

首先先明确目标:咱们要把每个教室编号对应的所有学生姓名、科目、时间都精准提取出来,最后整理成规整的格式输出到新文件里对吧?

我给你写一段针对性的Python代码,专门处理这种重复格式的文本,思路很清晰:先读取原文件,逐行扫描捕获教室编号,再拆分每个学生的信息字段,最后把所有规整好的数据写入新文件:

def extract_classroom_data(input_file, output_file):
    with open(input_file, 'r', encoding='utf-8') as f:
        lines = f.readlines()
    
    classroom_data = []
    current_classroom = None
    
    for line in lines:
        line = line.strip()
        if not line:
            continue  # 跳过空行,避免干扰
        # 匹配教室编号行
        if line.startswith("Classroom arrangement :"):
            current_classroom = line.split(":")[-1].strip()
        # 匹配学生信息行
        elif line.startswith("(") and line.endswith(")"):
            if current_classroom is None:
                continue  # 跳过没有对应教室的异常行
            # 去掉括号,拆分单个字段
            student_info = line[1:-1].split(", ")
            info_dict = {"Classroom": current_classroom}
            for item in student_info:
                key, value = item.split(": ")
                info_dict[key.strip()] = value.strip()
            classroom_data.append(info_dict)
    
    # 写入新文件,用CSV格式方便后续查看或导入表格工具
    with open(output_file, 'w', encoding='utf-8') as f:
        # 写入表头
        headers = ["Classroom", "Student Name", "Subject", "Time"]
        f.write(",".join(headers) + "\n")
        # 写入每条学生数据
        for data in classroom_data:
            row = [data.get(header, "") for header in headers]
            f.write(",".join(row) + "\n")

# 替换成你的实际文件名即可使用
extract_classroom_data("original.txt", "extracted_data.csv")

这段代码的优势很明显:

  • 自动跳过空行,几千行的大文件也能轻松处理
  • 把零散的文本信息整理成结构化的字典,最后输出成CSV格式(Excel、WPS都能直接打开)
  • 鲁棒性强,就算文本里偶尔有空格不一致的小偏差,也能正常提取信息

你只需要把代码里的original.txt换成你实际的输入文件名,extracted_data.csv换成你想要的输出文件名,运行就能得到规整的结果啦。如果之后想调整输出格式(比如换成JSON或者其他分隔符),直接修改最后写入文件的部分就行~

备注:内容来源于stack exchange,提问作者John Teo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 10:49:39