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

2024-09-20 06:56:38 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个文本输入文件,我想将其分割为多个块,以包含以“c”开头的每一行,每个块之间有一个空格。我已经成功地隔离了每一个“c”行,但是如何在块之间保留或添加一个空行是我无法理解的

这是填充:

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

当前输出文件和所需输出文件之间的唯一区别是保留现有的空行或在块之间添加空行


Tags: 文件数据文本true标题line空格copy
1条回答
网友
1楼 · 发布于 2024-09-20 06:56:38

我相信这应该满足你的期望:

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

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

相关问题 更多 >