猿问

为什么将 html 代码打印为字符串会在 python 中输出十六进制数字?

我写了一个 Python 代码来修改我的 html 内容。但是在再次将其写入 html 文件时,我得到了奇怪的十六进制数字


import re


search="www.abc.com"


description="blah blah"


f = open('myhtml.html','r+')

content = f.read()

exp_keyword = re.compile(r'\.(\S+)\.')

reducedSearch = exp_keyword.findall(search)[0]


regexLink = re.compile(reducedSearch+r'\.'+r'.+'+'</a>',re.DOTALL)

matchregexLink = regexLink.search(content)

endOfMatch = matchregexLink.span()[1]   


#slice the string

s1 = content[:endOfMatch]

s2=content[endOfMatch:]


content = s1+description+s2

print(content)

f.truncate(0)

f.write(content)

<html>

 <head>

 </head>

 <body>

  <div id="phy">

   <p>

    ett

   </p>

   <div class="links">

    <ul>

     <a href="www.abcd.com">

      Link

     </a>

     <a href="www.abc.com">

      Link

     </a>

    </ul>

   </div>

  </div>

 </body>

</html>

这些奇怪的十六进制数字是我得到的输出。但是,当我在代码中打印时content,它给出了正确的答案。为什么这样?我的预期答案blah blah写在包含 www.abc.com 链接的结束</a>标记之后。



繁花如伊
浏览 111回答 1
1回答

小怪兽爱吃肉

当你截断你的文件时,你实际上并没有回到文件中的位置 0。文件位置仍然是它原来的位置,现在已经超过了文件的末尾。写入文件会将文本写入旧文件位置,将之前的所有内容留空。十六进制不是由您发布的代码中的任何内容引起的。您已经在一个工具中打开了该文件,该工具向您显示了字节的原始十六进制值。由于所有空字节,此工具可能会这样做。
随时随地看视频慕课网APP

相关分类

Python
我要回答