我试图从文本文件中读取一个字节对象,但每当我从文本文件中读取时,我在bytes对象中得到双反斜杠,我无法找到如何将它们恢复为单个反斜杠。该文件以open(file, 'rb')
打开。我尝试过使用编码和解码,我也尝试过使用其他答案中详述的eval(str(my_string).replace('\\\\','\\'))
,但所有人都返回了错误:SyntaxError: (value error) invalid \x escape at position 372
。我想读的字符串是:\xde\xcct\x18\xe5*\x91\xcc\xf1\xb4\xe9\xc2\x97BhR\x87\xd6x\xd8\x83\x8b\xc2\x08
编辑:
Reading utf-8 escape sequences from a file中详述的答案和其他问题没有帮助,因为在尝试这些方法时我仍然遇到unicode转义错误。
答案 0 :(得分:0)
如果你的字符串来自带有反斜杠转义的字符的文件,则反斜杠会自行正确地重新连接,然后你可以看到单反斜杠为双反斜杠。你当然想要的是翻译转义的字符。您可以将编解码器模块与unicode_escape一起使用:
<div class="footer" style="position:absolute;bottom:-1115px">
<div class="text-center" style="border-top: 1px solid black;">
<small>
<ul t-if="not company.custom_footer" class="list-inline">
<li t-if="company.phone">Phone:
<span t-field="company.phone"/>
</li>
<li t-if="company.fax and company.phone">&bull;</li>
<li t-if="company.fax">Fax:
<span t-field="company.fax"/>
</li>
<li t-if="company.email and company.fax or company.email and company.phone">
&bull;
</li>
<t t-if="company.vat">TVA:
<span t-field="company.vat"/>
</t>
<li t-if="company.company_registry">RC:
<span t-field="company.company_registry"/>
</li>
</ul>
</small>
<small>
<ul class="list-inline">
<t t-set="nbr_page" t-value="1"/>
<li>Page:</li>
<t t-set="compteur" t-value="nbr_page+1"/>
<li>
<span class="page"/>
<t t-esc="nbr_page"/>
</li>
/
<t t-esc="nbr_page"/>
<li>
<span class="topage"/>
</li>
</ul>
</small>
<t t-set="nbr_page" t-value="1"/>
<t t-set="compteur" t-value="nbr_page+1"/>
</div>
</div>
如果您遇到错误,您可以通过“unicode_escape”编码参数打开文件来判断会发生什么。
with codecs.open("<yourfile>", 'r', encoding="unicode_escape") as fr:
print(fr.read())
您可以在此处查看错误处理程序的完整列表:https://docs.python.org/3/library/codecs.html#error-handlers