我有一个HTML文件,其中\n
个空格分隔每个元素标记。我们将此HTML文件称为results_cache.html
。我想用Python阅读results_cache.html
,然后将其内容写入另一个文件hopeful.html
。
但是,在撰写内容时,我希望每次弹出hopeful.html
时都在\n
开始新的一行。我的印象是Python自然会这样做;不幸的是,整个HTML只打印在一行上。
这是我的代码:
lines = [str(line.rstrip('\n')) for line in open('results_cache.html')]
final_cache = open('hopeful.html','w')
for line in lines:
final_cache.write(str(line))
final_cache.close()
这是hopeful.html
看起来像的快照:
'<table>\n <!-- ngRepeat: attempt in vm.getdate() --> <tr ng-repeat="attemp...
......下面没有别的东西。
我想指出的一件事是整条线用单引号包裹。我不知道这是否会影响结果。
使用Selenium Webdriver从网站上删除了HTML。
答案 0 :(得分:2)
围绕“open('results_cache.html')”的for循环不是一次迭代一行,而是一次迭代一个字符。
with open('results_cache.html') as readfile:
htmlfile = readfile.readlines()
lines = [line.rstrip('\n') for line in htmlfile]
或者你可以做到这一点并且很脏:
lines = [line.rstrip('\n') for line in open('results_cache.html').readlines()]
但是,如果在使用文件操作时发生异常,使用“with”语句更适合正确清理。