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

如何在Python中为文本里的数字后添加换行符?

解决方法:用正则表达式匹配条目数字并添加换行

首先,你的需求是把文本中每个品牌条目(比如1.Air Jordan、2.Nike)单独拆分成一行,核心是找到这些条目开头的数字.模式,然后调整换行位置。结合你的代码片段,我整理了完整的实现方案:

完整代码示例

import re
import os

# 替换成你的目标目录路径
target_directory = "/path/to/your/directory"

for folder, subfolders, filenames in os.walk(target_directory):
    for filename in filenames:
        if filename == "October 2014.txt":
            file_path = os.path.join(folder, filename)
            # 读取文件内容,指定编码避免乱码
            with open(file_path, "r", encoding="utf-8") as my_file:
                content = my_file.read()
            
            # 关键:用正则替换,把条目数字前的空格换成换行
            # 匹配规则:空格 + 数字+点,替换成换行+数字+点
            modified_content = re.sub(r'\s(\d+\.)', r'\n\1', content)
            
            # 可选:如果需要把格式化后的内容转成列表
            my_list = modified_content.split('\n')
            
            # 保存修改后的内容(建议存为新文件,避免覆盖原文件)
            output_filename = file_path.replace(".txt", "_formatted.txt")
            with open(output_filename, "w", encoding="utf-8") as output_file:
                output_file.write(modified_content)
            
            print(f"处理完成!格式化后的文件已保存为: {output_filename}")

代码说明

  1. 正则表达式逻辑:r'\s(\d+\.)' 匹配所有「空格+数字+点」的模式,比如原文本中1.Air Jordan 2.Nike里的 2.;替换成r'\n\1'就是把空格换成换行,保留数字+点,这样每个条目就会单独起一行。
  2. 特殊情况处理:对于原文本中类似5.2.2.Diesel这种带多个点的内容,因为中间的2.前面是点而不是空格,所以不会被匹配替换,完美保留原结构。
  3. 文件操作:用with语句确保文件安全读写,同时指定encoding="utf-8"避免特殊字符(比如&)出现乱码。
  4. 列表转换:如果需要把格式化后的内容转成列表,只需要用split('\n')分割即可。

效果展示

原文本片段:

Giovinni Enrico I GIO MORET FMJ 1.Air Jordan 2.Nike 3.Prada 4.Dolce & Gabbana 5.2.2.Diesel

格式化后:

Giovinni Enrico I GIO MORET FMJ
1.Air Jordan
2.Nike
3.Prada
4.Dolce & Gabbana
5.2.2.Diesel

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:04:16