如何用Python将带$标记的拼写错误文件转为指定映射格式?
Python 实现拼写错误数据集格式转换
核心思路
- 逐行遍历原文件
mispelling.txt - 遇到以
$开头的行时,提取去掉$和前后空白后的内容作为当前正确拼写 - 非
$开头的非空行,均视为对应正确拼写的错误形式,按错误拼写->正确拼写格式写入新文件
完整实现代码
# 初始化当前正确拼写变量 current_correct = "" # 用上下文管理器同时打开读写文件,自动处理文件关闭 with open("mispelling.txt", "r", encoding="utf-8") as infile, open("new_mispelling.txt", "w", encoding="utf-8") as outfile: for line in infile: # 去掉每行首尾的空白字符(换行、空格、制表符等) stripped_line = line.strip() # 跳过空行 if not stripped_line: continue # 判断是否为正确拼写行 if stripped_line.startswith("$"): # 去掉开头的$再去空白,赋值给当前正确拼写 current_correct = stripped_line[1:].strip() continue # 非正确拼写行、非空行,按要求格式写入 outfile.write(f"{stripped_line}->{current_correct}\n")
代码说明
- 用
with上下文管理器操作文件,避免手动调用close()可能出现的资源泄漏问题,新手使用更稳妥 - 加入空行跳过逻辑,兼容原文件中存在的换行间隔
- 显式指定
encoding='utf-8',避免跨平台运行时出现编码乱码问题 - 自动过滤正确拼写前后、错误拼写前后的多余空白,输出格式更规整
注意事项
- 请确保原文件的第一个有效非空行为
$开头的正确拼写行,避免出现正确拼写为空的异常输出 - 如果需要保留错误拼写的前后空格,可以去掉
stripped_line = line.strip()改为仅去掉末尾换行:stripped_line = line.rstrip('\n')
内容的提问来源于stack exchange,提问作者user16341274
相关产品推荐
相关产品推荐

