擅长:python、mysql、java
<p>使用<a href="https://docs.python.org/2/library/functools.html#functools.partial" rel="nofollow">functools.partial</a>和<a href="https://docs.python.org/2/library/codecs.html#codecs.iterdecode" rel="nofollow">codecs.iterdecode</a>(如图<a href="http://blog.etianen.com/blog/2013/10/05/python-unicode-streams/" rel="nofollow">here</a>)的组合如何?在</p>
<p>我已经创建了一个文件,文件中充满了<em>€</em>符号,并且似乎按预期工作(尽管不是从文件中读取,如下所示,而是从套接字读取):</p>
<pre><code>#!/usr/bin/env python
import codecs
import functools
import sys
with open('stack70.txt', 'rb') as euro_file:
f_iterator = iter(functools.partial(euro_file.read, 1), '')
for item in codecs.iterdecode(f_iterator, 'utf-8'):
print "sizeof item: %s, item: %s" % (sys.getsizeof(item), item)
</code></pre>
<p><strong>免责声明:</strong>我对<code>codecs</code>没有什么经验,所以我不能百分之百地肯定这会达到你想要的效果,但是(据我所知),它确实做到了,对吗?在</p>
<p><code>stack70.txt</code>是一个充满“euro”符号的文件。上述代码输出:</p>
^{pr2}$
<p>(使用Python2.7完成)</p>