<p>我想这是因为你在远东某个地方(也许是中国)使用国际化设置在命令提示符下使用Python。我不确定问题出在Python、命令提示符还是两者的组合上,但无论哪种方式,这两者的组合在非拉丁国际化设置中都不是特别好。</p>
<p>我建议改用<a href="http://docs.python.org/library/idle.html" rel="nofollow">IDLE</a>,因为它似乎正确地支持Unicode字符。下面是我在空闲状态下查看最后一个字符串时发生的情况。这段文字对我没有任何意义,但可能对你有影响:</p>
<pre>
IDLE 2.6.4
>>> z = u'\u540d\u4e3a\u201ctest.xls\u201d\u7684\u6587\u6863\u5df2\u7ecf\u6253\u5f00\u3002\u4e0d\u80fd\u540c\u65f6\u6253\u5f00\u540c\u540d\u6587\u4ef6\uff0c\u65e0\u8bba\u5b83\u4eec\u662f\u5426\u5728\u540c\u4e00\u6587\u4ef6\u5939\u4e2d\u3002\n\u8981\u6253\u5f00\u7b2c\u4e8c\u4efd\u6587\u6863\uff0c\u8bf7\u5173\u95ed\u5df2\u7ecf\u6253\u5f00\u7684\u6587\u6863\uff0c\u6216\u8005\u91cd\u65b0\u547d\u540d\u5176\u4e2d\u7684\u4e00\u4e2a\u6587\u6863\u3002'
>>> print z
名为“test.xls”的文档已经打开。不能同时打开同名文件,无论它们是否在同一文件夹中。
要打开第二份文档,请关闭已经打开的文档,或者重新命名其中的一个文档。
>>>
</pre>
<p>然而,即使使用IDLE,当您得到异常时,文本仍会像上面那样出现。如果发生这种情况,您需要做的是从上次引发的异常中获取数据,并从中获取相关字符串。</p>
<p>要获取解释器中引发的最后一个异常,可以使用<a href="http://docs.python.org/library/sys.html#sys.last_value" rel="nofollow">^{<cd2>}</a>。下面是一个带有不同异常消息的示例:</p>
<pre>
>>> import sys
>>> with open('nonexistent.txt') as f: pass
...
Traceback (most recent call last):
File "", line 1, in
with open('nonexistent.txt') as f: pass
IOError: [Errno 2] No such file or directory: 'nonexistent.txt'
>>> sys.last_value
IOError(2, 'No such file or directory')
>>> print(sys.last_value[1])
No such file or directory
>>>
</pre>