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

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.


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.


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ć "\".


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 ..


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)



-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 :.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.