无需用户输入即可在打开的文本文件中替换/删除子字符串(Python 3)

时间:2018-06-29 06:40:25

标签: python string text replace substring

如何使用Python方法替换手动打开的.txt文件中的子字符串(或删除部分字符串)。 用户已经打开了文本文件,并且python脚本应使用空格替换该文件中的子字符串(或删除它,以方便使用)。

字符串文本文件如下所示(它是网站的一部分,可以包含多行,但为简单起见,我仅放置第一行):

<tr><td>Subtitle</td><td><div class="Current temperature"><!-- here -- <!-- here2 --><div class="London"></div></div><div class="here3"></div><div class="Current temperature"><!-- here4 <!-- /react-text --><div class="Paris"></div></div></td></tr>

最终结果应为两行:

London
Paris

我已经在这里搜索了很多主题,其中许多假设用户输入的字符串应该被替换,而另一个输入则是新字符串。

这个小脚本不是那种类型,它应该已经包含要替换的子字符串(没有用户输入),因此这部分内容:

1。<tr><td>Subtitle</td><td><div class="Current temperature"><!-- here -- <!-- here2 --><div class="
   2. "></div></div><div class="here3"></div><div class="Current temperature"><!-- here4 <!-- /react-text --><div class="
   3. "></div></div></td></tr>

,它应该在运行时自动执行。 我在引号和html标记方面也遇到了问题,因此经常会出现语法错误。

关于该主题的其他主题,我找到了并尝试了以下代码:

file = open("C:/Users/blue11440/Desktop/example-text-file.txt", "r")
str = file.readlines()

x = str.replace("<tr><td>Subtitle</td><td><div class="Current temperature"> 
<!-- here -- <!-- here2 --><div class="", "")

在其他错误中,我得到了这个提示:

AttributeError: 'list' object has no attribute 'replace'
AttributeError: '_io.TextIOWrapper' object has no attribute 'replace'

我尝试了很少成功的replace, delete, remove方法,还有什么更好的方法吗?

1 个答案:

答案 0 :(得分:0)

最后一个问题:file.readlines()返回一个包含每行元素的列表。

.replace()是字符串(!)方法。因此,尝试遍历该列表:

for line in file.readlines():
    line.replace(....)

编辑:我认为您在字符串中的“”有问题:str.replace(“ Subtitle

使用单引号避免这种情况: str.replace('字幕