Dlaczego otrzymuję błąd SyntaxError dla ucieczki Unicode w mojej ścieżce do pliku?

105

Folder, do którego chcę się dostać, nazywa się python i znajduje się na moim pulpicie.

Gdy próbuję się do niego dostać, pojawia się następujący błąd

>>> os.chdir('C:\Users\expoperialed\Desktop\Python')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
natchniony
źródło
8
Spróbuj s.chdir(r'C:\Users\expoperialed\Desktop\Python'); przeczytaj: docs.python.org/2/reference/…
NullUserException

Odpowiedzi:

168

Musisz użyć nieprzetworzonego ciągu, podwoić ukośniki lub zamiast tego użyć ukośników:

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

W zwykłych ciągach znaków Pythona \Ukombinacja znaków sygnalizuje rozszerzoną ucieczkę punktu kodowego Unicode.

Możesz trafić w dowolną liczbę innych problemów, dla dowolnej rozpoznanej sekwencji ucieczki , takiej jak \alub tlub \xitp.

Martijn Pieters
źródło
To mi nie pomaga :(
Dmitry
1
@Dmitry Twój komentarz nikomu nie pomoże. Przepraszam, że odpowiedź nie pomogła Ci w rozwiązaniu problemu, ale jak mam ulepszyć swój post dzięki tej opinii?
Martijn Pieters
Spójrz na moją odpowiedź poniżej.
Dmitry
@Dmitry: to inna kwestia i niewiele wspólnego z literałami łańcuchowymi. W witrynie są inne posty, które obsługują raw_unicode_escapekodek. To, że konkretny pakiet ma błąd, który rzuca ten sam wyjątek, nie jest tak naprawdę odpowiedzią na to konkretne pytanie, więc ponownie go usunąłem (społeczność już go wcześniej usunęła). Podejrzewam, że istnieją lepsze sposoby rozwiązania tego konkretnego błędu (na przykład nie dotarcie do punktu, w którym musisz raw_unicode_escapenajpierw użyć ).
Martijn Pieters
10

C:\\Users\\expoperialed\\Desktop\\Python Ta składnia zadziałała dla mnie.

Papież
źródło
7

Zwykle dzieje się to w Pythonie 3. Jedną z najczęstszych przyczyn jest to, że podczas określania ścieżki pliku potrzebujesz "\\" zamiast "\". Jak w:

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

W przypadku Pythona 2 wystarczy użyć "\".

koder
źródło
5
f = open('C:\\Users\\Pooja\\Desktop\\trolldata.csv')

Użyj „\\” dla programu w języku Python w Pythonie w wersji 3 i nowszych .. Błąd zostanie rozwiązany ..

POOJA TAYADE
źródło
dlaczego potrójne `\`? Edytujesz literówkę? Ok, teraz widzę historię postów i ktoś nie dość dokładnie naprawił formatowanie, więc naprawiłem to. Zapoznaj się z funkcjami SO .
Marek R
1

Wszystkie trzy składnie działają bardzo dobrze.

Innym sposobem jest najpierw napisanie

path = r'C: \ user \ ................... '(cokolwiek jest ścieżką dla ciebie)

a następnie przekazanie go do os.chdir (ścieżka)

SPK
źródło
0

Użyj tego

os.chdir('C:/Users\expoperialed\Desktop\Python')
Pygirl
źródło
-1

Miałem ten sam błąd. Zasadniczo podejrzewam, że ścieżka nie może zaczynać się od „U” ani „User” po „C: \”. Zmieniłem katalog na „c: \ nazwa_pliku.png”, umieszczając plik, do którego chcę uzyskać dostęp z Pythona, bezpośrednio pod ścieżką „c: \”.

W twoim przypadku, jeśli musisz uzyskać dostęp do folderu „python”, być może ponownie zainstaluj pythona i zmień ścieżkę instalacji na coś w rodzaju „c: \ python”. W przeciwnym razie po prostu unikaj "... \ User ..." na swojej ścieżce i umieść projekt w C :.

Bec
źródło