したがって、私のスクリプトは、パスにキリル記号を含むフォルダーにあり、__file__
変数は、実際のパスではなく「エンコード エラー」を返します。
次の行を追加しても役に立たない
# -*- coding: cp1252 -*-
私は何をすべきか?
Python 3.3 のバージョン
これがあなたの質問に答えているかどうかはわかりませんが...
python3 では__file__
、現在実行中のスクリプトとパスをstr
. *nix システムはファイル名にバイナリを使用し、特定のエンコーディングを優先しません。を使用する__file__
と、システムはバイナリ文字列を取得し、デフォルトのエンコード システムを使用して文字列にエンコードしようとします。おそらくファイル名が cp1252 にあり、python がそれを utf8 として解釈しようとしているのだろうかと思っています。
Python は、エンコード時にここで概説されている規則に従う場合があります__file__
: http://docs.python.org/2/library/sys.html#sys.getfilesystemencoding
ただし、使用しているOSについては述べていません...