簡體   English   中英

使用open()Python 3進行文件編碼

[英]File encoding using open() Python 3

我有一個腳本,它使用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")

如果沒有,我該如何解決這個問題?

對於如何在Python中打開和寫入文件,這不是問題。 Python試圖讀取你的python 文件是一個問題。 您需要為文件指定編碼,以便Python可以正確讀取.py文件。

您需要弄清楚編輯此文件時編輯器使用的編碼。 將其作為注釋添加到文件的頂部(第一行或第二行):

# coding: latin-1

請參閱Python Unicode HOWTO 中的Python源代碼部分中的Unicode文字

請注意,您提供的錯誤消息不完整,以下文本是其中的一部分:

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

鏈接的PEP 263更詳細地解釋了源代碼編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM