python replace()没有按预期工作

Joh*_*ohn 0 python

我的脚本应该编写html文件来改变html菜单,将当前页面显示为class ="current_page_item",以便在渲染时突出显示.它必须进行两次替换,首先将前一个当前页面设置为不是当前页面,然后将新的当前页面设置为当前页面.两个writeText.replace行似乎没有任何效果.它不会给我一个错误或任何东西.任何建议,将不胜感激.

for each in startList:
    sectionName = s[each:s.find("\n",each)].split()[1]
    if sectionName[-3:] <> "-->":
        end = s.find("end "+sectionName+'-->')
        sectionText =  s[each+len(sectionName)+12:end-1]
        writeText = templatetop+"\n"+sectionText+"\n"+templatebottom
        writeText.replace('<li class="current_page_item">','<li>')
        writeText.replace('<li><a href="'+sectionName+'.html','<li class="current_page_item"><a href="'+sectionName+'.html')
        f = open(sectionName+".html", 'w+')
        f.write(writeText)
        f.close()  
Run Code Online (Sandbox Code Playgroud)

以下是我定位的字符串(templatetop)的一部分:

<li class="current_page_item"><a href="index.html" accesskey="1" title="">Home</a></li>
<li><a href="history.html" accesskey="2" title="">History</a></li>
<li><a href="members.html" accesskey="3" title="">Members</a></li>
Run Code Online (Sandbox Code Playgroud)

mpe*_*kov 6

replace 返回结果字符串,因此您需要执行以下操作:

writeText = writeText.replace('<li class="current_page_item">','<li>')
writeText = writeText.replace('<li><a href="'+sectionName+'.html','<li class="current_page_item"><a href="'+sectionName+'.html')
Run Code Online (Sandbox Code Playgroud)

  • 只是为这个响应添加一点清晰度,replace返回一个字符串,因为字符串本身是不可变的.要更改字符串,必须返回具有相应更新的字符串的新实例 (5认同)