如何删除数据集内单词字母间的多余空格并保留单词分隔
解决方法
核心处理逻辑
利用原始数据的空格分隔规则做分层替换:
- 第一步:把所有单词之间的2个连续空格替换为一个不会出现在原始数据里的临时占位符,比如
# - 第二步:删除所有剩余的单个空格,这些都是单词内部字母之间的分隔空格
- 第三步:把临时占位符替换回单个空格,就得到了符合要求的结果
不同场景的实现方案
Python处理(适合需要后续二次加工数据的场景)
# 读取本地文本文件处理示例 with open("data.txt", "r", encoding="utf-8") as f: lines = f.readlines() result = [lines[0]] # 直接保留表头 for line in lines[1:]: if not line.strip(): continue # 拆分id和data字段,避免修改id部分的内容 id_val, data_val = line.split(maxsplit=1) processed_data = data_val.replace(" ", "#").replace(" ", "").replace("#", " ") result.append(f"{id_val.ljust(4)}{processed_data}") # 打印结果或者写入新文件 for row in result: print(row, end="")
命令行awk实现(适合直接处理本地文本文件)
awk 'NR==1{print; next} {data = substr($0, index($0,$2)); gsub(/ /, "#", data); gsub(/ /, "", data); gsub(/#/, " ", data); print $1 " " data}' data.txt
命令行sed实现(轻量文本处理场景)
sed '1!s/ /#/g; 1!s/ //g; 1!s/#/ /g' data.txt
内容的提问来源于stack exchange,提问作者Andres Mora
相关产品推荐
相关产品推荐

