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

Python实现文件每行字符反转后新文件顶部空行问题求助

解决Python反转文件行后顶部出现空行的问题

我明白你遇到的问题了——其实这个空行的根源是每行末尾的换行符被反转到了行首!

当你用for line in readf读取文件时,每一行的内容都包含了末尾的换行符\n(比如原文件第一行是print("hello")\n)。你直接反转整行的话,换行符就会跑到最前面,变成\n")olleh"(tnirp,写入文件时这个\n就会生成一个空行,后面才是反转后的内容。而你打印的时候,print()会自动解析换行符,所以看起来每行都正常,但写入文件就暴露了这个问题。

修复方案

你只需要在反转前先去掉每行末尾的换行符,反转完成后再加回去就行:

def spiegelRegel():
    readf = open('scripting week 5.py', 'r')
    writef = open('scripting week 5 reversed.txt', 'x')
    for line in readf:
        # 只去掉末尾的换行符,避免影响行内的空格
        stripped_line = line.rstrip('\n')
        reversed_line = stripped_line[::-1] + '\n'
        writef.write(reversed_line)
    readf.close()
    writef.close()
spiegelRegel()

更优雅的写法(推荐)

用Python的上下文管理器with语句,它会自动帮你关闭文件,避免忘记关闭的问题:

def spiegelRegel():
    with open('scripting week 5.py', 'r') as readf, open('scripting week 5 reversed.txt', 'x') as writef:
        for line in readf:
            reversed_line = line.rstrip('\n')[::-1] + '\n'
            writef.write(reversed_line)
spiegelRegel()

验证问题的小技巧

你可以在循环里用print(repr(line))代替普通的print(line),这样就能看到行里的隐藏字符(比如\n),比如原行显示为'def spiegelRegel():\n',反转后就是'\n:)legeRleigeips fed',一眼就能看到开头的换行符啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:17:11