阅读网络上的百万资源,我变得更加困惑而不是帮助,因为我相信有很多方法可以做我需要做的事情。
所以我希望你们中的一些python大师可以帮我一把。
我需要做的是:
<a target="_top" href="http://website">Local website</a>
http://website
(永远不会是相同的字符串)
现在,如果我理解正确,我应该在python中使用正则表达式,这是正确的吗?
我的伪代码(对不起,我知道它看起来很糟糕)将是:
var = raw_input("Enter input: ")
print var, "will be the new site"
import re
o = open("test.html","w")
data = open("test.html").read()
o.write( re.sub("<a target="_top" href="(*)">Local website</a>",var,data) )
o.close()
以上可能甚至不是最好的方法,但它没有正则表达式部分,做一个简单的匹配替换(匹配总是相同)。
你们的任何暗示?
答案 0 :(得分:0)
你的代码看起来很不错。我只是改变了一点。由于您的代码似乎功能正常,我对您的问题不是很清楚。希望它有所帮助:
import re
INFILE = 'test.html'
OUTFILE = 'replaced.html'
new_site_name = raw_input('Enter input: ')
print new_site_name, 'will be the new site.'
pattern = '<a .* href="(.+)">.+</a>'
replacement = '<a target="_top" href=%s>Local website</a>' % new_site_name
with open(INFILE, 'r') as f:
html_text = f.read()
with open(OUTFILE, 'w') as f:
f.write(re.sub('<a .* href="(.+)">.+</a>', replacement, html_text))