您好我试图删除文件中的一行,但想要保留其余部分。
f = open("myfile.html").read()
lines = f.readlines()
a = findall('<h2>\$.*', f)
f.close()
f = open("myfile.html","w")
for line in lines:
if line!= a[0]:
f.write(line)
f.close()
当我使用上面的代码时,我的html文件中的所有其他行都被删除了。
试图摆脱的文字:
<h2>Thank you</h2>
<h2>Please come again</h2> #Get rid of this line
答案 0 :(得分:1)
试试这个:
with open("myfile.html", "w+") as f:
content = f.read()
f.write(re.sub(r'<\s*h2[^>]*>(.*?)<\s*/\s*h2>', '', content))
但正如@Willem Van Onsem建议的那样,不要使用正则表达式来处理XML / HTML,使用XML解析器,1x的BeautifulSoup会更加健壮。
答案 1 :(得分:0)
当您写入同一文件时,内容将被覆盖。因此,您需要打开新文件并将该文件写为:
f = open("NEWFILE.html","w")
for line in lines:
if line!= a[0]:
f.write(line)
f.close()