Warum erhalte ich einen SyntaxError für ein Unicode-Escape in meinem Dateipfad?


105

Der Ordner, zu dem ich gelangen möchte, heißt Python und befindet sich auf meinem Desktop.

Ich erhalte die folgende Fehlermeldung, wenn ich versuche, darauf zuzugreifen

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

8
Versuchen Sie es s.chdir(r'C:\Users\expoperialed\Desktop\Python'); Lesen Sie: docs.python.org/2/reference/…
NullUserException

Antworten:


168

Sie müssen stattdessen eine rohe Zeichenfolge verwenden, Ihre Schrägstriche verdoppeln oder Schrägstriche verwenden:

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

In regulären Python-Zeichenfolgen \Usignalisiert die Zeichenkombination ein erweitertes Unicode-Codepunkt-Escape.

Sie können eine beliebige Anzahl anderer Probleme für eine der erkannten Escape-Sequenzen wie \aoder toder \xusw. ausführen.


Es hilft mir nicht :(
Dmitry

1
@Dmitry dein Kommentar hilft niemandem. Entschuldigung, die Antwort hat Ihnen nicht bei der Lösung Ihres Problems geholfen, aber wie kann ich meinen Beitrag mit diesem Feedback verbessern?
Martijn Pieters

Schau dir meine Antwort unten an.
Dmitry

@Dmitry: Das ist ein anderes Problem und hat wenig mit String-Literalen zu tun. Es gibt andere Beiträge auf der Site, die den raw_unicode_escapeCodec behandeln. Dass ein bestimmtes Paket einen Fehler aufweist, der dieselbe Ausnahme auslöst, ist keine wirkliche Antwort auf diese bestimmte Frage, daher habe ich es erneut gelöscht (die Community hatte es bereits zuvor gelöscht). Ich vermute, es gibt bessere Möglichkeiten, um diesen bestimmten Fehler zu beheben (z. B. nicht an den Punkt zu gelangen, an dem Sie ihn raw_unicode_escapezuerst verwenden müssen).
Martijn Pieters

10

C:\\Users\\expoperialed\\Desktop\\Python Diese Syntax hat bei mir funktioniert.


7

Dies geschieht normalerweise in Python 3. Einer der häufigsten Gründe ist, dass Sie bei der Angabe Ihres Dateipfads "\\" anstelle von "\" benötigen. Wie in:

filePath = "C:\\User\\Desktop\\myFile"

Für Python 2 würde es funktionieren, nur "\" zu verwenden.


5
f = open('C:\\Users\\Pooja\\Desktop\\trolldata.csv')

Verwenden Sie '\\' für Python-Programme in Python Version 3 und höher. Der Fehler wird behoben.


warum dreifach `\`? Tippfehler bearbeiten? Ok, jetzt sehe ich den Post-Verlauf und jemand hat die Formatierung nicht sorgfältig genug korrigiert, also habe ich das behoben. Bitte machen Sie sich mit SO-Funktionen vertraut .
Marek R

1

Alle drei Syntax funktionieren sehr gut.

Ein anderer Weg ist, zuerst zu schreiben

path = r'C: \ user \ ................... '(was auch immer der Pfad für Sie ist)

und dann weitergeben an os.chdir (Pfad)


0

Benutze das

os.chdir('C:/Users\expoperialed\Desktop\Python')

-1

Ich hatte den gleichen Fehler. Grundsätzlich vermute ich, dass der Pfad weder mit "U" noch mit "User" nach "C: \" beginnen kann. Ich habe mein Verzeichnis in "c: \ file_name.png" geändert, indem ich die Datei, auf die ich von Python aus zugreifen möchte, direkt unter den Pfad "c: \" gestellt habe.

Wenn Sie in Ihrem Fall auf den Ordner "python" zugreifen müssen, installieren Sie den Python möglicherweise neu und ändern Sie den Installationspfad in "c: \ python". Vermeiden Sie andernfalls einfach das "... \ User ..." in Ihrem Pfad und setzen Sie Ihr Projekt unter C:.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.