Чому я отримую SyntaxError для втечі Unicode на шляху мого файлу?


105

Папка, до якої я хочу потрапити, називається python і знаходиться на моєму робочому столі.

Я отримую таку помилку, коли намагаюся дійти до неї

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

8
Спробуйте s.chdir(r'C:\Users\expoperialed\Desktop\Python'); читати: docs.python.org/2/reference/…
NullUserException

Відповіді:


168

Потрібно використовувати необроблений рядок, подвоїти косої риски або замість цього скористатись передніми косою рискою:

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

У звичайних рядках пітона \Uкомбінація символів сигналізує про розширений вихід кодової точки Unicode.

Ви можете потрапити на будь-яку кількість інших проблем, будь-яку з розпізнаних послідовностей втечі , таких як \aабо tабо \xтощо.


Мені це не допомагає :(
Дмитро

1
@Dmitry ваш коментар нікому не допомагає. Вибачте, відповідь не допомогла вирішити вашу проблему, але як я буду покращувати свою посаду за допомогою цих відгуків?
Martijn Pieters

Подивіться на мою відповідь нижче.
Дмитро

@Dmitry: це інша проблема, і це мало спільного з рядковими літералами. На сайті є інші публікації, які обробляють raw_unicode_escapeкодек. Те, що в певному пакеті є помилка, яка видає той самий виняток, насправді не є відповіддю на це конкретне запитання, тому я його ще раз видалив (громада вже видаляла його раніше). Я підозрюю, що існують кращі способи вирішення конкретної помилки (як, наприклад, не дійти до того, коли вам доведеться користуватися raw_unicode_escapeв першу чергу).
Martijn Pieters

10

C:\\Users\\expoperialed\\Desktop\\Python Цей синтаксис працював на мене.


7

Зазвичай це відбувається в Python 3. Однією з найпоширеніших причин є те, що при вказівці вашого файлового шляху вам потрібно "\\" замість "\". А саме:

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

Для Python 2, просто використання "\" буде працювати.


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

Використовуйте '\\' для програми python у версії 3 і вище Python. Помилка буде усунена ..


чому потрійний `\`? Редагування друку? Гаразд, я бачу історію публікацій і хтось виправляв форматування недостатньо ретельно, тому я це виправив. Будь ласка, ознайомтесь із функціями SO .
Марек Р

1

Усі три синтаксису працюють дуже добре.

Інший спосіб - спочатку написати

path = r'C: \ user \ ................... '(яким би не був шлях для вас)

а потім передати його os.chdir (шлях)



-1

У мене була така ж помилка. В основному, я підозрюю, що шлях не може починатися ні з "U", ні з "Користувачем" після "C: \". Я змінив свій каталог на "c: \ file_name.png", поставивши файл, до якого я хочу отримати доступ з python, прямо під "c: \" шлях.

У вашому випадку, якщо вам доведеться отримати доступ до папки "python", можливо, перевстановіть python та змініть шлях установки на щось на зразок "c: \ python". В іншому випадку просто уникайте "... \ Користувача ..." на своєму шляху та поставте проект під C :.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.