¿Por qué obtengo un error de sintaxis para un escape Unicode en la ruta de mi archivo? [duplicar]
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
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 \U
combinació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
, \t
o \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 SyntaxWarning
en 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 SyntaxError
excepció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'
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.
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á.