You need to enable JavaScript to run this app. Flask项目用open()写TXT文件时每行后多余空行的解决方法
优惠活动
大模型
产品
解决方案
定价
更多

Flask项目用open()写TXT文件时每行后多余空行的解决方法

Flask 导出TXT文件多余空行修复方案

核心原因

  • 数据库存储的text字段本身携带冗余连续换行,多来自用户输入时误敲回车、表单提交时的换行重复转义
  • Python文本写入模式默认会自动把\n转成当前系统的换行格式,若原文本已自带对应格式的换行,会叠加生成额外空行
  • 写入逻辑未对原始文本做清洗,直接原样输出保留了所有冗余空白

修复步骤

  1. 引入正则处理模块,用于批量清洗连续冗余换行
  2. 打开文件时添加newline=''参数,关闭Python自动换行转义逻辑
  3. 对每条待写入的文本做标准化清洗:
    • 把全格式换行(Windows端\r\n、老Mac端\r)统一转换为标准\n
    • 将连续出现的多个换行折叠为单个换行,移除文本首尾的多余空白与空换行
    • 按统一格式拼接写入,避免相邻内容粘连

修改后的代码示例

import re
from flask import redirect, url_for
from flask_login import login_required
# 替换为你项目中实际的Textfile模型导入路径
from models import Textfile

@app.route('/textCreate', methods=['GET','POST'])
@login_required
def textCreate():
    textData = Textfile.query.all()
    # newline='' 禁止Python自动转换换行符,从根源避免转义导致的多余空行
    with open('training_data/training.txt', 'w', newline='') as fh:
        for line in textData:
            # 统一所有格式的换行标记
            cleaned_content = line.text.replace('\r\n', '\n').replace('\r', '\n')
            # 折叠连续换行,清除首尾冗余空白
            cleaned_content = re.sub(r'\n+', '\n', cleaned_content).strip()
            # 写入清洗后的内容,末尾加标准换行保证排版连续
            fh.write(cleaned_content + '\n')
    return redirect(url_for('admin'))

效果验证

修复后导出的TXT文件会完全匹配输入的排版逻辑,仅在内容之间保留单个标准换行,不会出现多余空行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 11:54:08