我有一些看起来像这样的文本文件:
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
答案 0 :(得分:2)
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)
答案 1 :(得分:2)
下面写了一个新文件" newfile.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()
答案 2 :(得分:1)
换算换行:
contentOfThatFile.split('\n')
然后遍历每一行并忽略其中包含SPLIT的所有行:
[line if 'SPLIT' not in line else '\n' for line in contentOfThatFile.split('\n')]
这将使用新行替换文件中包含SPLIT
的每一行。