我有一个html文件,我要删除以字符串<!DOCTYPE html
开头的行上方的所有行
示例:
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=utf-8
Date: Sat, 22 Mar 2015 07:56:52
Connection: close
Content-Length: 2959
<!DOCTYPE html...... extra lines ...
因此,当我搜索字符串<!DOCTYPE
的出现时,我需要删除所有行,包括此特定行上方的空行。在linux中,我们在grep
中有一个选项,可以搜索上方和下方的行,然后将其删除。我们可以在Python中做类似的事情吗?
答案 0 :(得分:1)
stop = "<!DOCTYPE html"
with open('input.html') as infile, open('output.html', 'w') as outfile:
buff = []
for line in infile:
if not line.strip():
buff.append(line)
continue
if line.strip() == stop: break
outfile.write(''.join(buff))
buff = []
outfile.write(line)
答案 1 :(得分:0)
不确定您的确切意思,但是我认为您的意思是打开HTML文件,然后尝试编辑其中的内容? 这可能是非常规的,但是尝试将其打开以进行读取,使用readlines()获取并存储所有行。过滤掉不需要的行。 然后关闭文件,再次打开以进行写入,然后将您的行粘贴在其中(这将覆盖文件中的所有当前内容)。这样一来,您也可以删除中间不需要的行。