为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁花如伊 2022-10-11 10:04:59
我写了一个 Python 代码来修改我的 html 内容。但是在再次将其写入 html 文件时,我得到了奇怪的十六进制数字import research="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 strings1 = content[:endOfMatch]s2=content[endOfMatch:]content = s1+description+s2print(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>标记之后。
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

当你截断你的文件时,你实际上并没有回到文件中的位置 0。文件位置仍然是它原来的位置,现在已经超过了文件的末尾。

写入文件会将文本写入旧文件位置,将之前的所有内容留空。

十六进制不是由您发布的代码中的任何内容引起的。您已经在一个工具中打开了该文件,该工具向您显示了字节的原始十六进制值。由于所有空字节,此工具可能会这样做。


查看完整回答
反对 回复 2022-10-11
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信