用python删除txt文件中特定元素之间的单词

问题描述 投票:0回答:1

我是python初学者,并遇到以下问题:

我有一个文本文件('demofile.txt'),想要多次剪切两个特定元素({start} and {end})之间的所有内容。如例所示,文本文件包含:

'AAAA {start} BBBB {end} CCCC {start} DDDD {end} EEEE {start} FFFF {end} GGGG'

结果应该是:

'AAAA CCCC EEEE GGGG'

首先,我定义了两个作为裁切器的元素

start = '{start}'  
end = '{end}'

我试图切除第一部分并使用了以下代码:

text_start = text.find(start)
text_new = text[0:text_start]
print(text_new)

结果是:'AAAA',这是我想要的

下一部分,我尝试了此:

text_start = text.find(end)
text_end = text.find(start, text_start)
text_new = text[text_start+len(end):text_end]
print(text_new)

结果是:'CCCC',这也是我一直在寻找的内容>>

现在我试图将所有内容放在一起并建立一个循环,但失败了:-)

text_start = text.find(start)
text_new = text[0:text_start]

text_end = 0

for parts in text.split("{"):
    text_start = text.find(end, text_end)
    text_end = text.find(start, text_start)
    text_new = text_new + text[text_start+len(end):text_end]
print(text_new)

结果是:'AAAA CCCC EEEE GGG {开始} BBBB {结束} CCCC {开始} DDDD {结束} ...'

还有更多。因此,直到“ GGG”为止,结果还可以,但是缺少一个G。然后所有的东西都应该删除。我猜想循环以某种方式继续了,并且split语句的循环开始是胡扯。这里有什么解决方案?我想了解出了什么问题并更改了代码。当然,我也对更短,更优雅的方式感兴趣。我敢肯定我做的事很糟糕;-)我发现了一些带有“正则表达式”的东西,但我也无法正常运行。感谢您的任何想法。

((PS:知道如何将剪切出的所有内容保存在单独的文件中吗?)

我是python初学者,并遇到以下问题:我有一个文本文件('demofile.txt'),想多次剪切两个特定元素({start}和{end})之间的所有内容。如en ...

python text
1个回答
0
投票

您可以简单地这样做:

© www.soinside.com 2019 - 2024. All rights reserved.