Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从文本文件中删除重复部分,而不删除第一次出现的部分_Python_Python 3.x_Python 2.7 - Fatal编程技术网

Python 从文本文件中删除重复部分,而不删除第一次出现的部分

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

我有一个像这样的文本文件

名称:Python

地址:苹果

这是一个示例文本

它可以以不同的文本2开头

结束

这是文件开始的地方

发生了什么事

修道院院长

名称:Python

地址:苹果

这是一个不同的文本

结束

还有另外一个东西是写出来的

我该怎么办

这个

发生了什么事

我试图删除Name:和End之间的所有内容,除了保留Name:和End之前的所有内容

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()
方法。