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

如何逆序重排文本文件中的文本块?Python 3.6实现

搞定Label块逆序的Python 3.6方案

嘿,我来帮你解决这个文本块逆序的问题!根据你的需求,我写了一段适配Python 3.6的代码,能把文件里的Label块整体倒过来排,同时每个块里的内容顺序保持不变。

先理清楚需求

你的文本文件里,每个Label:都是单独一行,后面跟着对应文本,要把这些Label块从后往前排,比如原来的A→B→C,变成C→B→A,每个块里的Text顺序不动。

直接上代码

def reverse_label_blocks(input_file, output_file):
    # 读入文件所有行,保留原始格式(包括换行)
    with open(input_file, 'r', encoding='utf-8') as f:
        all_lines = f.readlines()
    
    # 把内容拆成一个个Label块
    label_blocks = []
    current_block = []
    for line in all_lines:
        # 遇到Label开头的行,就把当前块存起来,开始新的块
        if line.strip().startswith('Label:'):
            if current_block:
                label_blocks.append(current_block)
            current_block = [line]
        else:
            # 非Label行就加到当前块里
            if current_block:
                current_block.append(line)
    # 别忘了把最后一个块也加进去
    if current_block:
        label_blocks.append(current_block)
    
    # 反转块的顺序,Python 3.6完全支持这个切片语法
    reversed_blocks = label_blocks[::-1]
    
    # 把反转后的块写入输出文件
    with open(output_file, 'w', encoding='utf-8') as f:
        for block in reversed_blocks:
            f.writelines(block)

# 示例用法,替换成你的输入输出文件路径就行
reverse_label_blocks('your_input.txt', 'your_output.txt')

代码怎么工作的?

  1. 读文件:按行读取整个文件,这样能保留每行的换行符和格式,不会破坏原文本的排版。
  2. 拆分块:遍历每一行,一旦碰到Label:开头的行,就把之前攒的当前块存进列表,然后开始新的块;普通文本行就直接加到当前块里。
  3. 反转块列表:用[::-1]这个Python切片技巧快速反转块的顺序,简单又高效,Python 3.6完全支持。
  4. 写结果:把反转后的块依次写入新文件,每个块内部的顺序和原来一模一样。

测试一下

如果你的输入文件是这样:

Label: A
Text1
Text2
Label: B
Text3
Text4
Label: C
Text5
Text6

运行代码后,输出文件就会变成:

Label: C
Text5
Text6
Label: B
Text3
Text4
Label: A
Text1
Text2

完全符合你的预期!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:30:08