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

このファイルを作成するときにエディターが使用したエンコーディングを把握する必要があります。これをコメントとしてファイルの先頭 (1 行目または 2 行目) に追加します。

# coding: latin-1

Python Unicode HOWTO の「Python ソース コードの Unicode リテラル」セクションを参照してください。

あなたが与えたエラーメッセージは完全ではないことに注意してください.次のテキストはその一部です:

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

リンクされたPEP 263では、ソース コードのエンコーディングについて詳しく説明しています。

于 2012-12-29T10:29:10.403 に答える