Python 从文本文件中删除重复部分,而不删除第一次出现的部分
我有一个像这样的文本文件 名称:Python 地址:苹果 这是一个示例文本 它可以以不同的文本2开头 结束 这是文件开始的地方 发生了什么事 嗯 修道院院长 名称:Python 地址:苹果 这是一个不同的文本 结束 还有另外一个东西是写出来的 我该怎么办 这个 发生了什么事 我试图删除Name:和End之间的所有内容,除了保留Name:和End之前的所有内容Python 从文本文件中删除重复部分,而不删除第一次出现的部分,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我有一个像这样的文本文件 名称:Python 地址:苹果 这是一个示例文本 它可以以不同的文本2开头 结束 这是文件开始的地方 发生了什么事 嗯 修道院院长 名称:Python 地址:苹果 这是一个不同的文本 结束 还有另外一个东西是写出来的 我该怎么办 这个 发生了什么事 我试图删除Name:和End之间的所有内容,除了保留Name:和End之前的所有内容 import re with open('testfile.txt') as csvfiles: data=csvfiles.r
import re
with open('testfile.txt') as csvfiles:
data=csvfiles.read()
print (re.sub('Name.*?End','',data, flags=re.DOTALL))
我想要的结果是:
名称:Python
地址:苹果
这是一个示例文本
它可以以不同的文本2开头
结束
这是文件开始的地方
发生了什么事
嗯
修道院院长
还有另外一个东西是写出来的
我该怎么办
这个
发生了什么事
我得到的是:
这是文件开始的地方
发生了什么事
嗯
修道院院长
还有另外一个东西是写出来的
我该怎么办
这个
发生了什么事
如何保持从名称到结尾的第一次出现,并删除名称:到结尾之间的所有内容
import re
with open('testfile.txt') as csvfiles:
data=csvfiles.read()
print (re.sub('Name.*?End','',data, flags=re.DOTALL))
谢谢,,
Shone可能不是最快的解决方案,但您可以使用正则表达式查找模式的所有出现项,并将除第一个以外的所有出现项替换为
'
下面是一个与您的模式匹配的正则表达式:
输出:
Name: Python
Address: apple
This is a sample text.
It could start with different text text2.
End
This is where file starts....
What is going on
Yeah
abble
There is another stuff that is written.
What should I do.
This
What is going on
我知道你做了什么。它可能会很慢,如果文件变得更大,但它为我工作,所以我会采取它。谢谢,一个更快的替代方法是在第一次匹配后
拆分
文件,然后在第一次匹配后使用当前的re.sub()
方法。