'ascii'编解码器无法解码字节0xe2 - Python3 on Sublime Text 3



这是我的第一个问题。

我正在运行以下内容:

  • 崇高文本 3
  • 操作系统 10
  • 蟒蛇 3.6

我正在尝试在Sublime上打开并打印一个.txt文件。我正在使用以下代码:

myfile = open("/stanford.txt", "r")
contents = myfile.read()

这是我收到的错误消息:

Traceback (most recent call last):
File "/Users/me/python/Test1.py", line 11, in <module> 
contents = myfile.read()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 173: ordinal not in range(128)
[Finished in 0.1s with exit code 1]

上面的 2 行代码适用于 Sublime Text 3,当我使用 Python 2.7 运行时。当我在终端上运行它们(使用 Python3)时,它也可以工作。但是,当我在 IDLE 中尝试它们时,它们不起作用:当我在 Python3 中运行它们时,我收到与 Sublime Text 3 给我的完全相同的错误消息。

这是我在Sublime Text 3上的构建配置:

{
"cmd": ["/Library/Frameworks/Python.framework/Versions/3.6/bin/python3", "$file"],
"selector": "source.python",
"file_regex": "file "(...*?)", line([0-9]+)"
}

我也尝试添加"PYTHONIOENCODING",但仍然相同的错误消息:

{
"cmd": ["/Library/Frameworks/Python.framework/Versions/3.6/bin/python3", "$file"],
"selector": "source.python",
"file_regex": "file "(...*?)", line([0-9]+)",
"env": {"PYTHONIOENCODING": "utf8"}
}

(我也尝试过用破折号代替上面的"utf-8"。相同的错误消息)。

我需要做什么才能让崇高文本 3 可以读取文件?

谢谢

编辑:我不认为这个问题是另一个问题的副本?这对我来说适用于终端,但不适用于崇高文本 3。

编辑2:我注意到,如果我删除文本文件中包含的撇号('),我可以毫无问题地打开该文件。仅当我将撇号添加回文本文件时,才会发生错误。

好的,我终于想通了。

我在打开函数中添加了以下内容:

, encoding="utf-8")

它奏效了。我仍在努力找出一种方法来使其永久适用于Sublime上的Python3。

最新更新