利用Python将分组文本转为Excel的流程步骤

Written by

in

文章目录
  • 在英语学习过程中,我们经常会接触各种分组整理的词汇表,比如“Group1”对应一组单词及释义,随后是“Group2”、“Group3”等等。如果你下载了一个 .txt 格式的四级词汇表,打算分类整理后导入 Excel 学习软件中,大概率你会遇到格式杂乱、分组不清、复制麻烦的问题。 这正是我们今天要解决的实际场景:如何用 Python 脚本自动读取一份分组文本,提取每组单词及释义,并导出为结构清晰、按组分类的 Excel 文件? 本文将通过一段简洁但实用的代码,为你完整拆解整个处理过程。只需一次点击,就能让海量词汇“格式整齐地排队”进入 Excel,开启你的高效学习之旅。
  • 整个任务可以分为以下几个步骤: 读取文本文件:读取本地 .txt 文件中的原始词汇数据。 按组分割内容:使用正则表达式识别每个 Group 的起始点,并提取组名与内容。 提取每行单词和释义:针对每组中的每一行,解析出单词与释义(考虑 Tab 和空格分隔)。 分组保存为 Excel Sheet:每个 Group 单独作为一个 Excel 的 Sheet 保存,输出为 .xlsx 文件。 打印结果提示:脚本执行完毕后,输出处理结果路径。 这不仅是一次对正则表达式和 pandas 的实战练习,也是一次程序自动化处理文本数据的典型示例。
  • 完整代码如下(可直接运行): import re import pandas as pd from collections import defaultdict with open(“四级单词.txt”, “r”, encoding=”utf-8″) as file: raw_text = file.read() pattern = r”(Groupd+)n” splits = re.split(pattern, raw_text) grouped_data = defaultdict(list) for i in range(1, len(splits), 2): group_name = splits[i] entries = splits[i + 1].strip().split(“n”) for entry in entries: entry = entry.strip() if not entry: continue if “t” in entry: word, meaning = entry.split(“t”, 1) elif ” ” in entry: parts = entry.split(maxsplit=1) if len(parts) == 2: word, meaning = parts else: continue else: continue grouped_data[group_name].append((word.strip(), meaning.strip())) output_path = “四级单词.xlsx” with pd.ExcelWriter(output_path) as writer: for group, word_list in grouped_data.items(): df = pd.DataFrame(word_list) df.to_excel(writer, sheet_name=group, index=False, header=False) print(f”转换完成,已保存为:{output_path}”)
  • 本脚本涵盖了多个关键技能点,值得初中级开发者好好吸收: 正则表达式:熟练使用 re.split() 与 re.match() 是文本解析的基础; 文本清洗:处理不规则数据需要严谨的判断和预处理; 数据结构选型:defaultdict 是处理分组数据的神器; pandas 应用:将数据写入 Excel 是最常见的自动化场景之一; 代码可复用性强:换成词汇表、笔记数据、考试清单都能用!
  • 目录
    • 一、背景引入:从“人工整理”到“自动化处理”的转变
    • 二、思路分析:我们到底要做什么?
    • 三、具体功能实现:每一步都不马虎
      • 1. 读取文本数据
      • 2. 利用正则表达式识别 Group 分组
      • 3. 将每组单词提取到字典中
      • 4. 写入 Excel 文件,每组一个 Sheet
      • 5. 执行结果提示
    • 四、代码展示:实用就是最好的美学
      • 五、学后总结:你收获了什么?
        • 拓展建议:

      在英语学习过程中,我们经常会接触各种分组整理的词汇表,比如“Group1”对应一组单词及释义,随后是“Group2”、“Group3”等等。如果你下载了一个 .txt 格式的四级词汇表,打算分类整理后导入 Excel 学习软件中,大概率你会遇到格式杂乱、分组不清、复制麻烦的问题。

      这正是我们今天要解决的实际场景:如何用 Python 脚本自动读取一份分组文本,提取每组单词及释义,并导出为结构清晰、按组分类的 Excel 文件?

      本文将通过一段简洁但实用的代码,为你完整拆解整个处理过程。只需一次点击,就能让海量词汇“格式整齐地排队”进入 Excel,开启你的高效学习之旅。

      整个任务可以分为以下几个步骤:

      1. 读取文本文件:读取本地 .txt 文件中的原始词汇数据。
      2. 按组分割内容:使用正则表达式识别每个 Group 的起始点,并提取组名与内容。
      3. 提取每行单词和释义:针对每组中的每一行,解析出单词与释义(考虑 Tab 和空格分隔)。
      4. 分组保存为 Excel Sheet:每个 Group 单独作为一个 Excel 的 Sheet 保存,输出为 .xlsx 文件。
      5. 打印结果提示:脚本执行完毕后,输出处理结果路径。

      这不仅是一次对正则表达式和 pandas 的实战练习,也是一次程序自动化处理文本数据的典型示例。

      with open("四级单词.txt", "r", encoding="utf-8") as file:
          raw_text = file.read()
      

      这段代码打开并读取了名为《四级单词.txt》的文件内容。注意编码采用 UTF-8,防止中文乱码。

      pattern = r"(Groupd+)n"
      splits = re.split(pattern, raw_text)
      
      • 我们设定一个正则:Group 开头,后接数字,最后以换行结束。
      • 然后用 re.split 分割文本,这样就能将每组的组名和词条内容分开。

      举个例子,原文本可能像这样:

      Group1
      apple	苹果
      banana	香蕉
      Group2
      run	跑
      jump	跳
      

      经过 re.split 之后,splits 的结果会是:

      ['', 'Group1', 'applet苹果nbananat香蕉', 'Group2', 'runt跑njumpt跳']
      

      grouped_data = defaultdict(list)
      for i in range(1, len(splits), 2):
          group_name = splits[i]
          entries = splits[i + 1].strip().split("n")
          for entry in entries:
              ...
      

      利用 Python 的 defaultdict(list) 自动为每个组建立一个单词列表。

      每个词条处理如下逻辑:

      • 优先使用 t 制表符分隔;
      • 若没有 t,尝试用空格分隔;
      • 去掉无效或空行,确保数据干净整洁。
      if "t" in entry:
          word, meaning = entry.split("t", 1)
      elif " " in entry:
          parts = entry.split(maxsplit=1)
          if len(parts) == 2:
              word, meaning = parts
          else:
              continue
      

      这样处理后,每个分组会变成例如:

      'Group1': [('apple', '苹果'), ('banana', '香蕉')]
      

      with pd.ExcelWriter(output_path) as writer:
          for group, word_list in grouped_data.items():
              df = pd.DataFrame(word_list)
              df.to_excel(writer, sheet_name=group, index=False, header=False)
      
      • 使用 pandas.ExcelWriter 写入 Excel。
      • 每个分组作为一个单独的 Sheet 页。
      • 不写入表头或行号,使数据更加简洁。

      最终生成的文件结构清晰、美观,每页都是该组的词汇,便于记忆与分类学习。

      print(f"转换完成,已保存为:{output_path}")
      

      一个简单但贴心的用户提示,方便确认处理成功与结果文件位置。

      完整代码如下(可直接运行):

      import re
      import pandas as pd
      from collections import defaultdict
      
      with open("四级单词.txt", "r", encoding="utf-8") as file:
          raw_text = file.read()
      
      pattern = r"(Groupd+)n"
      splits = re.split(pattern, raw_text)
      grouped_data = defaultdict(list)
      
      for i in range(1, len(splits), 2):
          group_name = splits[i]
          entries = splits[i + 1].strip().split("n")
          for entry in entries:
              entry = entry.strip()
              if not entry:
                  continue
              if "t" in entry:
                  word, meaning = entry.split("t", 1)
              elif " " in entry:
                  parts = entry.split(maxsplit=1)
                  if len(parts) == 2:
                      word, meaning = parts
                  else:
                      continue
              else:
                  continue
              grouped_data[group_name].append((word.strip(), meaning.strip()))
      
      output_path = "四级单词.xlsx"
      with pd.ExcelWriter(output_path) as writer:
          for group, word_list in grouped_data.items():
              df = pd.DataFrame(word_list)
              df.to_excel(writer, sheet_name=group, index=False, header=False)
      
      print(f"转换完成,已保存为:{output_path}")
      

      本脚本涵盖了多个关键技能点,值得初中级开发者好好吸收:

      • 正则表达式:熟练使用 re.split()re.match() 是文本解析的基础;
      • 文本清洗:处理不规则数据需要严谨的判断和预处理;
      • 数据结构选型defaultdict 是处理分组数据的神器;
      • pandas 应用:将数据写入 Excel 是最常见的自动化场景之一;
      • 代码可复用性强:换成词汇表、笔记数据、考试清单都能用!

      • 增加错误日志,记录格式不规范的词条;
      • 支持中文注释与 Sheet 排序;
      • 加入 GUI 界面(如 Tkinter),一键操作更直观。

      通过这一小项目,你不仅提升了文本处理能力,还掌握了数据清洗与文件导出的实用技巧。记住,编程的价值在于解决问题,而最能让你成长的,正是这种“从无到有”的小工具!

      以上就是利用Python将分组文本转为Excel的流程步骤的详细内容,更多关于Python文本转为Excel的资料请关注风君子博客其它相关文章!

      您可能感兴趣的文章:

      • Python实现Excel和TXT文本之间相互转换
      • 基于Python实现文本文件转Excel
      • 使用Python将PDF表格提取到文本,CSV和Excel文件中
      • 使用Python读取Excel数据并写入到CSV、XML和文本

      站内搜索