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

Python 3中如何将文本文件每行末尾4个字符移至行首?

问题排查与解决:文本行末尾4字符移至行首无效的问题

问题原因

  1. 换行符干扰判断:读取文件时,每行末尾默认带有换行符(\n),导致rearrange函数中word.endswith('0')判断不成立——实际行的结尾是0\n而非单独的0,因此跳过了字符重排逻辑,直接返回原字符串。
  2. 冗余的字符拼接:原代码中逐个拼接word[-4]等字符的写法不仅冗余,还会在存在换行符时错误截取到换行符而非目标字符。

解决方法

  1. 读取行时先去除末尾换行符,避免干扰判断和字符截取;处理完成后再加回换行符,保证输出文件格式一致。
  2. 用字符串切片操作替代逐个字符拼接,简化逻辑同时提升效率。
  3. 使用嵌套with语句管理文件读写,自动处理文件关闭,避免手动操作的潜在问题。

修正后的代码

def rearrange(word):
    # 先移除行尾换行符,保证判断准确性
    word = word.rstrip('\n')
    if word.endswith('0'):
        # 切片直接完成末尾4字符移至开头的操作
        word = word[-4:] + word[:-4]
    # 加回换行符,保持文件行格式一致
    return word + '\n'

# 嵌套with语句同时管理读写文件,自动处理关闭
with open(r"test_text1.txt") as file_read, open(r"reversed-test_text1.txt", 'wt') as file_write:
    for line in file_read:
        processed_line = rearrange(line)
        file_write.write(processed_line)

# 验证处理结果
with open("reversed-test_text1.txt", 'r') as f:
    print('Print the 4-char reversed text:')   
    print(f.read())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 00:18:30