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

Python如何将文本文件中的多个连续空格替换为单个空格

Python 实现多连续空格替换为单空格的正确方案

原有代码的问题

  • Python 中字符串是不可变类型,直接对字符串的单个字符调用 replace() 方法不会修改原字符串,执行后的结果是返回新字符串但没有被接收使用,逻辑无效
  • 遍历逻辑只覆盖了长度减1的下标,最后一个字符会被遗漏,无法完整写入文件
  • 只能处理两个连续空格的场景,3个及以上连续空格无法正确替换

最简实现方案

推荐直接用正则匹配替换,代码逻辑简洁,兼容性好:

import re

# 读取源文件
with open("test.234.txt", 'r', encoding='utf-8') as f:
    raw_content = f.read()

# 匹配连续1个以上的普通空格,替换为单个空格
# 如果需要替换所有连续空白(包含制表符、换行符等),可以把正则换成 r'\s+'
processed_content = re.sub(r' +', ' ', raw_content)

# 写入处理后的内容
with open("test234(double space replaced by singleones)", 'w', encoding='utf-8') as f:
    f.write(processed_content)

无依赖实现方案

如果不想引入正则模块,也可以用分割后过滤空值再拼接的方式实现:

with open("test.234.txt", 'r', encoding='utf-8') as f:
    raw_content = f.read()

# 按空格分割后过滤掉空字符串,再用单个空格拼接
processed_content = ' '.join([seg for seg in raw_content.split(' ') if seg])

with open("test234(double space replaced by singleones)", 'w', encoding='utf-8') as f:
    f.write(processed_content)

内容的提问来源于stack exchange,提问作者chitranshu chauhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:57:01