擅长:python、mysql、java
<p>之所以发生这种情况,是因为文件包含字节字符串的文本表示形式<em>(<code>[w\x84\x7f@\xc6\xab\xc8</code>),但实际上不是字节本身。是否正确写入文件:</p>
<pre><code>with open('/tmp/file', 'wb') as f:
f.write(b'[w\x84\x7f@\xc6\xab\xc8')
</code></pre>
<p>这样你就不会有阅读问题了:</p>
^{pr2}$
<p>或者通过<code>ast.literal_eval</code>解释保存在文件中的表示,尽管在这种情况下这是不可取的。在</p>
<p>底线是:始终知道您使用的是什么类型的字符串(unicode)或字节,请记住,当您在控制台中打印字节时,您看到的是表示(类似于\xa0的内容),而不是字节本身,因为有些字节没有可打印的形式。在</p>