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

Python逐行反转文件写入新文件出现空行、末尾两行拼接问题

问题成因

两个异常的核心原因是直接对携带行尾换行符的原始行做反转,打乱了换行符的位置:

  • 开头空行:通过readlines()读取的行内容会保留行尾的换行符\n,原始文件除最后一行外,所有行的结构都是有效内容 + \n,直接切片反转后结构变为\n + 反转后的有效内容。第一行反转后首字符就是\n,写入文件时会先输出一个换行,直接导致结果开头出现空行。
  • 最后两行拼接:原始文件最后一行末尾没有换行符,反转后的整段内容不含任何\n,写入时会直接拼接在上一行反转内容的末尾,中间无换行分隔,因此出现两行连在一起的问题。
修正方法

弃用原始行自带的换行符,处理每行时先剥离行尾的换行符,仅对有效内容做反转,之后统一在每行反转结果后补充换行符写入即可。优化后代码可直接迭代文件对象,无需一次性读取全量内容,内存占用更低:

with open("D:\\Users\\Documents\\Documents\\pythonFile\\PracticeAboutPython123\\resource\\data.csv") as fi,\
        open("D:\\Users\\Documents\\Documents\\pythonFile\\PracticeAboutPython123\\resource\\reverseline.txt","w+") as fo:
    for line in fi:
        # 仅移除行尾换行符,避免误删内容首尾的有效空白字符
        pure_content = line.rstrip('\n')
        reversed_line = pure_content[::-1]
        fo.write(f"{reversed_line}\n")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 03:54:20