这是我的第一个问题。
我正在运行以下内容:
- 崇高文本 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。