0

我有一个使用 open() 创建多个文件的脚本。所有文件都已成功创建,似乎没有问题,但是在尝试运行 res.py 时,它崩溃并显示以下错误:

  File "C:\Users\Mirac\Python\res.py", line 38
SyntaxError: Non-UTF-8 code starting with '\xd7' in file C:\Users\Mirac\Python\res.py on line 38, but no encoding declared;

通过 IDLE 打开文件时,出现“指定文件编码”窗口:

The file's encoding is invalid for Python 3.x. 
IDLE will convert it to UTF-8.
What is current encoding of the file?

这是 res.py 的第 38 行:

print("Configuration file updated.")

那么,我可以在创建过程中将编码设置为文件吗,如下所示:

open("res.py", "w").encoding("UTF-8")
with open("res.py", "a") as file:
    file.write("File contents here")

如果没有,我该如何解决这个问题?

4

1 回答 1

2

这不是您如何在 Python 中打开和写入文件的问题。这是 Python 试图读取你的 python文件的问题。您需要为文件指定编码,以便 Python 可以.py正确读取文件。

你需要弄清楚你的编辑器在编写这个文件时使用了什么编码。将其作为注释添加到文件顶部(第一行或第二行):

# coding: latin-1

请参阅Python Unicode HOWTO 的Python 源代码中的 Unicode Literals部分。

请注意,您提供的错误消息不完整,以下文本是其中的一部分:

see http://www.python.org/peps/pep-0263.html for details

链接的PEP 263更详细地解释了源代码编码。

于 2012-12-29T10:29:10.403 回答