¿Por qué obtengo un SyntaxError para un escape Unicode en la ruta de mi archivo?

105

La carpeta a la que quiero acceder se llama python y está en mi escritorio.

Recibo el siguiente error cuando intento acceder

>>> os.chdir('C:\Users\expoperialed\Desktop\Python')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
inspirado
fuente
8
Prueba s.chdir(r'C:\Users\expoperialed\Desktop\Python'); leer: docs.python.org/2/reference/…
NullUserException

Respuestas:

168

Necesita usar una cadena sin procesar , duplicar sus barras o usar barras diagonales en su lugar:

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

En cadenas de Python normales, la \Ucombinación de caracteres indica un escape de punto de código Unicode extendido.

Puede resolver cualquier número de otros problemas, para cualquiera de las secuencias de escape reconocidas , como \ao to \x, etc.

Martijn Pieters
fuente
No me ayuda :(
Dmitry
1
@Dmitry, tu comentario no ayuda a nadie. Lo siento, la respuesta no te ayudó a resolver tu problema, pero ¿cómo voy a mejorar mi publicación con esos comentarios?
Martijn Pieters
Mira mi respuesta a continuación.
Dmitry
@Dmitry: ese es un problema diferente, y poco que ver con los literales de cadena. Hay otras publicaciones en el sitio que manejan el raw_unicode_escapecódec. Que un paquete específico tenga un error que arroje la misma excepción no es realmente una respuesta a esta pregunta específica, así que lo eliminé nuevamente (la comunidad ya lo había eliminado antes). Sospecho que hay mejores formas de resolver ese error específico (como no llegar al punto en el que tienes que usarlo raw_unicode_escapeen primer lugar).
Martijn Pieters
10

C:\\Users\\expoperialed\\Desktop\\Python Esta sintaxis funcionó para mí.

papa
fuente
7

Esto suele suceder en Python 3. Una de las razones más habituales es que, al especificar la ruta del archivo, necesita "\\" en lugar de "\". Como en:

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

Para Python 2, simplemente usar "\" funcionaría.

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

Use '\\' para el programa Python en Python versión 3 y superior .. El error se resolverá ..

POOJA TAYADE
fuente
¿por qué triple `\`? ¿Editando error tipográfico? Ok, ahora veo el historial de publicaciones y alguien corrigió el formato sin el suficiente cuidado, así que lo he arreglado. Familiarícese con las funciones de SO .
Marek R
1

Las tres sintaxis funcionan muy bien.

Otra forma es escribir primero

ruta = r'C: \ usuario \ ................... '(cualquiera que sea la ruta para usted)

y luego pasarlo a os.chdir (ruta)

SPK
fuente
0

Utilizar este

os.chdir('C:/Users\expoperialed\Desktop\Python')
Pygirl
fuente
-1

Yo tenía el mismo error. Básicamente, sospecho que la ruta no puede comenzar con "U" o "Usuario" después de "C: \". Cambié mi directorio a "c: \ file_name.png" colocando el archivo al que quiero acceder desde python justo debajo de la ruta 'c: \'.

En su caso, si tiene que acceder a la carpeta "python", tal vez reinstale python y cambie la ruta de instalación a algo como "c: \ python". De lo contrario, simplemente evite el "... \ Usuario ..." en su ruta y ponga su proyecto en C :.

Bec
fuente