我写了一个 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。文件位置仍然是它原来的位置,现在已经超过了文件的末尾。
写入文件会将文本写入旧文件位置,将之前的所有内容留空。
十六进制不是由您发布的代码中的任何内容引起的。您已经在一个工具中打开了该文件,该工具向您显示了字节的原始十六进制值。由于所有空字节,此工具可能会这样做。
添加回答
举报
0/150
提交
取消