拆分并从字符串中删除整行

2024-06-02 08:38:12 发布

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

我有一些文本文件如下所示:

blah blah 
2131232 SPLIT
fdsfdsf dfds
fds fdsdf 
fdsf fds
3423423 SPLIT
dsf 324 fdsr
3243 fsdf 3wrfs
543534 SPLIT

如果我这样做:contentOfThatFile.split('SPLIT')我会把数字留在文件的开头。是否仍然可以使用split()删除正在拆分的整行?所以输出是:

blah blah 

fdsfdsf dfds
fds fdsdf 
fdsf fds

dsf 324 fdsr
3243 fsdf 3wrfs

Tags: 数字splitblah文本文件我会fdsdsfdfds
3条回答

改为换行拆分:

contentOfThatFile.split('\n')

然后遍历每一行并忽略其中包含SPLIT的所有行:

[line if 'SPLIT' not in line else '\n' for line in contentOfThatFile.split('\n')]

这将用新行替换文件中包含SPLIT的每一行。你知道吗

import re

foo = re.split('.* SPLIT',x)
print(foo)

对于您的具体示例,包括转换为列表与将其保留为字符串(无论您的偏好如何),下面是一个更详细的片段:

words = """blah blah 
           2131232 SPLIT
           fdsfdsf dfds
           fds fdsdf 
           fdsf fds
           3423423 SPLIT
           dsf 324 fdsr
           3243 fsdf 3wrfs
           543534 SPLIT"""

import re
import itertools

foo =  re.split('.* SPLIT\n*',words)
re_joined = ''.join(foo).strip()
re_split = re_joined.split('\n')

print(re_joined)
print(re_split)

下面的“写入新文件”新文件.txt“从源文件”texttosplit.txt文件排除文件中包含“SPLIT”的任何行

with open('texttosplit.txt') as fo:
    for line in fo:
        if "SPLIT" in line:
            line=""
        newfile=open("newfile.txt",'a')
        newfile.write(line)
        newfile.close()

相关问题 更多 >