我有一个使用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")
如果没有,我该如何解决这个问题?
答案 0 :(得分:2)
这对于如何在Python中打开和写入文件不是一个问题。 Python试图读取你的python 源文件是个问题。您需要为源文件指定编码,以便Python可以正确读取.py
文件。
您需要弄清楚编辑此文件时编辑器使用的编码。将其作为注释添加到文件的顶部(第一行或第二行):
# coding: latin-1
请参阅Python Unicode HOWTO的Unicode Literals in Python Source Code部分。
请注意,您提供的错误消息不完整,以下文字是其中的一部分:
see http://www.python.org/peps/pep-0263.html for details
linked PEP 263更详细地解释了源代码编码。