111

取得したいフォルダーは python と呼ばれ、デスクトップにあります。

アクセスしようとすると、次のエラーが表示されます

>>> os.chdir('C:\Users\expoperialed\Desktop\Python')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
4

5 に答える 5

182

生の文字列を使用するか、スラッシュを二重にするか、代わりにスラッシュを使用する必要があります。

r'C:\Users\expoperialed\Desktop\Python'
'C:\\Users\\expoperialed\\Desktop\\Python'
'C:/Users/expoperialed/Desktop/Python'

通常の Python 文字列では、\U文字の組み合わせは拡張 Unicode コードポイント エスケープを示します。

、、などの他の認識されたエスケープ シーケンスのいずれかについて、他の問題をいくつでもヒットできます。\a\t\x

Python 3.6 の時点では、認識されないエスケープ シーケンスによって がトリガーされる可能性があることに注意してくださいDeprecationWarning(これらのデフォルト フィルターを削除する必要があります)。Python の将来のバージョンでは、そのような認識されないエスケープ シーケンスによってSyntaxError. 現時点では特定のバージョンは設定されていませんが、Python はSyntaxWarningエラーになる前のバージョンで最初に使用します。

Python バージョン 3.6 以降でこのような問題を見つけたい場合は、 (コマンド ライン スイッチ環境変数、または関数呼び出しを介して)SyntaxError警告フィルターを使用して、警告を例外に変えることができます。error:^invalid escape sequence .*:DeprecationWarning

Python 3.10.0 (default, Oct 15 2021, 22:25:32) [Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import warnings
>>> '\expoperialed'
'\\expoperialed'
>>> warnings.filterwarnings('default', '^invalid escape sequence .*', DeprecationWarning)
>>> '\expoperialed'
<stdin>:1: DeprecationWarning: invalid escape sequence '\e'
'\\expoperialed'
>>> warnings.filterwarnings('error', '^invalid escape sequence .*', DeprecationWarning)
>>> '\expoperialed'
  File "<stdin>", line 1
    '\expoperialed'
    ^^^^^^^^^^^^^^^
SyntaxError: invalid escape sequence '\e'
于 2013-08-06T15:39:30.047 に答える
0

3 つの構文はすべて非常にうまく機能します。

別の方法は、最初に書くことです

path = r'C:\user\.................' (パスは何でも構いません)

そしてそれを os.chdir(path) に渡します

于 2016-12-10T05:00:47.110 に答える
-2

同じエラーが発生しました。基本的に、「C:\」の後に「U」または「User」でパスを開始することはできないと思われます。Pythonからアクセスしたいファイルを「c:\」パスのすぐ下に置くことで、ディレクトリを「c:\file_name.png」に変更しました。

あなたの場合、「python」フォルダーにアクセスする必要がある場合は、おそらくpythonを再インストールし、インストールパスを「c:\ python」などに変更します。それ以外の場合は、パスに「...\User...」を含めずに、プロジェクトを C: の下に置きます。

于 2017-07-03T01:36:13.583 に答える