我正在查找和替换脚本以修复我网站上的一些内容。我使用的是Python 3.3.2。
这是我的代码:
import re
f = open('random.html', 'w')
strToSearch = " "
for line in f:
strToSearch += line
patFinder1 = re.compile('<td>Sermon Title</td>\
<td><audio preload="none" controls src="http://www.orlandobiblechurch.org/Audio/\d{6}ldm.mp3"></audio>\
</td>\
</tr>')
findPat1 = re.search(patFinder1, strToSearch)
findPat1 = re.findall(patFinder1, strToSearch)
for i in findPat1:
print(i)
subFound = patFinder1.sub('<td>Lord\'s Day Morning</td>\
<td><audio preload="none" controls src="http://www.orlandobiblechurch.org/Audio/\d{6}ldm.mp3"></audio>\
</td>\
</tr>', strToSearch)
print(subFound)
f.write(subFound)
f.close()
问题是python告诉我该文件不可读。如果我将f = open('random.html','w')更改为f = open('random.html','r'),则说它不可写。这是有道理的,为什么它需要两者,但如果我把两者都放进去,它告诉我必须有一个读/写的东西。我很肯定这是基本的东西,我无法弄明白。感谢您提供的任何帮助。
答案 0 :(得分:0)
f = open('random.html','r +')
答案 1 :(得分:0)
您可以使用r+
或w+
作为第二个参数在两种模式下打开它。请参阅here。
另外,您是否考虑过使用with
声明?它们更像pythonic:
with open('random.html', 'w+') as f:
do_stuff()
这具有很大的优势,您之后无需手动执行.close()
。
strToSearch
也可以重写为strToSearch = ''.join(f.readlines())
您是否考虑过使用像BeautifulSoup
这样的HTML解析器?比正则表达更好更容易:)