使用 Python 将文本文件按唯一字符和末尾空行拆分为块

Use Python to split text file into chunks by unique character and a blank line at the end

给定一个文本输入文件,我想将其分成多个块以包含以 'c' 开头的每一行,每个块之间有一个空白 space。我已经成功地隔离了每一 'c' 行,但是我不知道如何在块之间保留或添加一个空行。

这是 infile:

c70 标题-1 C c
c
c
c
c 标题 1 标题 2 标题 3 标题 4
数据数据数据数据

c80 标题-2 C c
c
c
c
c 标题 1 标题 2 标题 3 标题 4
数据数据数据数据

c90 标题-3 C c
c
c
c
c 标题 1 标题 2 标题 3 标题 4
数据数据数据数据

这是我的代码:

for line in infile:
    if not line.lstrip().startswith('c'):
        copy = True
        continue
    elif line == '\n':
        copy = True
        continue
    elif copy:
        outfile.write(line)

这是我的输出文件:

c70 标题-1 C c
c
c
c
c 标题 1 标题 2 标题 3 标题 4
c80 标题 -2 C c
c
c
c
c 标题 1 标题 2 标题 3 标题 4
c90标题-3 C c
c
c
c
c 标题 1 标题 2 标题 3 标题 4

这是我想要的输出文件:

c70 标题-1 C c
c
c
c
c 标题 1 标题 2 标题 3 标题 4

c80 标题-2 C c
c
c
c
c 标题 1 标题 2 标题 3 标题 4

c90 标题-3 C c
c
c
c
c 标题 1 标题 2 标题 3 标题 4

我当前的输出文件和我想要的输出文件之间的唯一区别是保留现有的空行或在块之间添加一个空行。

我相信这应该符合您的期望:

for line in infile:
    if line.lstrip().startswith("c") or line == "\n":
        outfile.write(line)

您可以扫描每一行,并检查它是否以 c 开头或是否为换行符,并且只将它们写入输出文件。