Python 字符串处理常用技巧:清洗文本、提取字段和格式化输出
围绕文章、日志、接口返回和表格字段,整理 Python 字符串处理的常用方法,适合做内容清洗、批量处理和数据整理。
相关工具
字符串处理最常见的是清洗,不是炫技
真实工作里,字符串处理通常不复杂,但很琐碎。标题多了空格,正文有多余换行,日志里要提取错误码,接口字段里混着中文和数字,CSV 里有不可见字符。这些问题如果靠手工改,量一大就会出错;用 Python 写几行脚本,反而更稳。
最常用的几个方法是 strip、split、join、replace、startswith、endswith、in。它们已经能解决很多文本清洗问题。不要一上来就写复杂正则,先用简单字符串方法处理,规则清楚时再引入正则。
清理多余空白可以这样写:
text = " 这是一段\n\n 带空格的文本 "
cleaned = " ".join(text.split())
print(cleaned)提取固定格式字段可以用正则
如果文本里有明确模式,比如手机号、邮箱、订单号、错误码,可以用正则提取。正则适合规则明确的小片段,不适合解析完整 HTML、JSON 或 CSV。复杂格式优先用专门解析器。
提取邮箱示例:
import re
text = "联系人:test@example.com,备用邮箱:admin@example.org"
emails = re.findall(r"[\w.-]+@[\w.-]+\.\w+", text)
print(emails)写正则时要准备正例和反例。比如邮箱要测没有 @ 的、多个 @ 的、带空格的;订单号要测位数不对的、前后有中文的。把样例先放到正则工具里看匹配结果,再放进 Python 脚本,会少很多试错。
格式化输出让结果更可读
Python 里推荐用 f-string 做字符串格式化,清楚直观。比如生成文件名、日志行、提示语、批量标题,都可以用 f-string。比起用加号拼接,它更不容易漏空格,也更容易看出最终文本长什么样。
示例:
name = "张三"
score = 92.5
message = f"{name} 的本次得分是 {score:.1f}"
print(message)如果要生成大量文本,比如文章标题、批量文件名、CSV 字段,建议把格式化规则写成函数。这样后续要改模板时,只改一个地方。
批量处理前先保留原文
字符串清洗最怕误删。比如把所有空格都删掉,中文看起来没问题,英文单词就粘在一起了;把所有标点删掉,URL 和邮箱也可能坏掉。批量处理前,最好保留原始字段,再新增清洗后的字段。这样发现规则不合适时还能回退。
处理表格数据时,可以保留 raw_text 和 clean_text 两列。处理文件时,可以输出到新文件,不要直接覆盖原文件。站内文本清理、正则工具、文本对比工具适合在写脚本前后做检查,先小样本验证,再批量处理。
一个稳妥流程是:抽样 20 条数据,写清洗规则,人工检查输出,扩大到 200 条,再跑全量。别一上来就处理全部文件。
常见问题
Python 字符串清洗一定要用正则吗?
不一定。strip、split、join、replace 已经能解决很多问题,规则复杂时再用正则。
批量替换前怎么避免误删?
先抽样验证,保留原始字段或原文件,再用文本对比检查变化。
f-string 适合什么场景?
适合生成提示语、文件名、日志、标题等可读文本,比加号拼接更清楚。