如果创建特定文本删除python中特定文本之间的文本
Posted
技术标签:
【中文标题】如果创建特定文本删除python中特定文本之间的文本【英文标题】:If specific text founded remove text between specific text in python 【发布时间】:2017-05-16 21:45:14 【问题描述】:我有一个包含很多行的数据,如下所示:
<br>  <font size="4">•</font>  Closed Point 3<br>  <font size="4">•</font>  Opened Shape<br>
我想在行中搜索单词“Point”,如果找到它只删除这部分:
<br>  <font size="4">•</font>  Closed Point 3
所以 它只会离开:
<br>  <font size="4">•</font>  Opened Shape<br>
我被困在这里:
with open(input, 'r') as f:
lines = f.readlines()
with open(output, 'w') as w:
for line in lines:
if 'Point' in line:
【问题讨论】:
【参考方案1】:你应该调查 string.replace;这是一个描述:
string.replace(s, old, new[, maxreplace])
返回字符串 s 的副本,其中所有出现的子字符串 old 都替换为 new。如果给出了可选参数 maxreplace,则替换第一个 maxreplace 出现。
并考虑如果“new”是一个空字符串会发生什么。
【讨论】:
如果我没有“封闭点”而是“开放点”怎么办?我应该将许多 ifs 替换为空“”吗? 如果您希望更改的文本不同,则可能需要正则表达式替换。在这种情况下,您可以阅读re.sub(再次将repl
参数设置为空字符串)。【参考方案2】:
只看字符串替换方法。
https://www.tutorialspoint.com/python/string_replace.htm
line = line.replace('Closed Point 3','Opened Shape')
你甚至不需要 if 语句,因为如果没有找到匹配,替换函数将返回原始字符串。
【讨论】:
但我有这样一行: • 封闭点 3 • 打开形状 他的输入字符串已经有“Opened Shape”(需要向右滚动)。 我想我需要找到一种方法来删除 和 之间的一些文本,但最后的 必须保留。我不认为替换功能会有所帮助。 啊,是的,我误读了长线...但是,如果您想删除文本,只需替换为空字符串...正如马克的回答所建议的“line = line.replace ('闭点 3','')" 是的,但我想替换每一行(我有很多),其中包含单词“Point”,并且只删除 和 之间的部分,但 必须保留行尾以上是关于如果创建特定文本删除python中特定文本之间的文本的主要内容,如果未能解决你的问题,请参考以下文章
Python如何删除文本文件中特定字符串之后或之前的特定行数