0

阅读网络上的数百万资源,我感到困惑多于帮助,因为我相信有很多方法可以做我需要用 py 做的事情。

所以我希望你们中的一些蟒蛇大师可以帮助我。

我需要做的是以下几点:

  • 提示用户输入 [INPUT]
  • 打开一个 html 文件(简单,不要太大)
  • 搜索<a target="_top" href="http://website">Local website</a>
  • 用 [INPUT]替换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()

以上可能甚至不是最好的方法,但它可以在没有正则表达式部分的情况下工作,做一个简单的匹配替换(匹配总是相同的)。

各位有什么提示吗?

4

1 回答 1

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))
于 2013-11-13T06:22:04.590 回答