我有一个python程序,它读取csv文件,进行一些更改,然后写入HTML文件。问题是一个代码块,我试图搜索分配给一个变量的字符串,然后用分配给另一个变量的另一个字符串替换它。我能够读取csv文件中的一行,如下所示:
Link:,www.google.com
我成功地编写了一个包含以下内容的html文件:
<tr><td>Link:</td><td><a href="https://www.google.com">www.google.com</a></td></tr>
从本质上说,我想更进一步,增加一个步骤,找到www.google.com在锚定标签之间,并将其替换为“GOOGLE”。你知道吗
我研究了python中内置的“find and replace”函数,并在正则表达式模块中提出了替换函数(回复sub()). 这可能不是最好的方法,我正在尝试找出是否有更好的功能/模块,我应该研究。你知道吗
python
for line in file:
newHTML.write(re.sub(var1,var2,line,flags=re.MULTILINE), end='')
newHTML.write(re.sub(var3,var4,line,flags=re.MULTILINE), end='')
我收到的错误是:
newHTML.write(re.sub(var1,var2,line,flags=re.MULTILINE), end='')
TypeError: write() takes no keyword arguments
如果我注释掉这段代码,程序的其余部分运行良好,尽管没有找到并替换这些变量。你知道吗
也许吧回复sub()与write()不匹配?你知道吗
错误说明了问题所在:正如@furas评论的那样,
write()
与print()
不同,并且不接受end=''
关键字参数。file.write()
默认情况下,如果不显式放置任何\n
,则不包含换行符,因此如果将行更改为:另外,regex和HTML aren't the best of friends。。。您的案例非常简单,使用regex很好,但是您提到要寻找更好的模块来生成HTML。This SO question在答案中有一些很好的建议。值得一提的是在上面创建HTML模板有xml.etree、jinja2(Flask的默认引擎)和yattag。你知道吗
相关问题 更多 >
编程相关推荐