¿Por qué obtengo un error de sintaxis para un escape Unicode en la ruta de mi archivo? [duplicar]

Resuelto inspired asked hace 11 años • 0 respuestas

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

Recibo el siguiente error cuando intento acceder a él

>>> os.chdir('C:\Users\expoperialed\Desktop\Python')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
inspired avatar Aug 06 '13 22:08 inspired
Aceptado

Debe usar una cadena sin formato , duplicar las 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 normales de Python, la \Ucombinación de caracteres indica un escape de punto de código Unicode extendido.

Puede acceder a cualquier número de otros problemas, para cualquiera de las otras secuencias de escape reconocidas , como \a, \to \x.

Tenga en cuenta que a partir de Python 3.6, las secuencias de escape no reconocidas pueden desencadenar un DeprecationWarning(tendrá que eliminar el filtro predeterminado para ellas) y, en una versión futura de Python, dichas secuencias de escape no reconocidas provocarán un SyntaxError. No se ha establecido una versión específica en este momento, pero Python se usará primero SyntaxWarningen la versión antes de que se produzca un error.

Si desea encontrar problemas como estos en las versiones de Python 3.6 y posteriores, puede convertir la advertencia en una SyntaxErrorexcepción utilizando el filtro de advertencias error:^invalid escape sequence .*:DeprecationWarning(a través de un modificador de línea de comando , una variable de entorno o una llamada de función ):

Python 3.10.0 (default, Oct 15 2021, 22:25:32) [Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import warnings
>>> '\expoperialed'
'\\expoperialed'
>>> warnings.filterwarnings('default', '^invalid escape sequence .*', DeprecationWarning)
>>> '\expoperialed'
<stdin>:1: DeprecationWarning: invalid escape sequence '\e'
'\\expoperialed'
>>> warnings.filterwarnings('error', '^invalid escape sequence .*', DeprecationWarning)
>>> '\expoperialed'
  File "<stdin>", line 1
    '\expoperialed'
    ^^^^^^^^^^^^^^^
SyntaxError: invalid escape sequence '\e'
Martijn Pieters avatar Aug 06 '2013 15:08 Martijn Pieters

Esto suele suceder en Python 3. Una de las razones más comunes sería 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.

coder avatar Mar 06 '2017 15:03 coder
f = open('C:\\Users\\Pooja\\Desktop\\trolldata.csv')

Utilice '\\' para el programa Python en la versión 3 de Python y superiores. El error se resolverá.

POOJA TAYADE avatar May 31 '2017 08:05 POOJA TAYADE