example - read csv python pandas
(error unicode) el códec ''unicodeescape'' no puede decodificar bytes en la posición 2-3: escape / UXXXXXXXX truncado (9)
Estoy tratando de leer un archivo .csv en Python (Spyder) pero sigo recibiendo un error. Mi código:
import csv
data = open("C:/Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener")
data = csv.reader(data)
print(data)
Obtuve el siguiente error:
SyntaxError: (error unicode) el códec ''unicodeescape'' no puede decodificar bytes en la posición 2-3: escape / UXXXXXXXX truncado
He tratado de reemplazar el / con / o con / y he tratado de poner una r antes de "C .. pero todas estas cosas no funcionaron.
El doble / debería funcionar para Windows, pero aún debe cuidar las carpetas que menciona en su ruta. Todos ellos (excepto el nombre del archivo) deben existir. de lo contrario, recibirá un error.
Este error se produce porque está utilizando una cadena normal como ruta. Puede usar una de las siguientes soluciones para solucionar su problema.
-
Simplemente ponga
r
antes de su cadena normal, convierte la cadena normal en cadena sin procesar:
pandas.read_csv(r"C:/Users/DeePak/Desktop/myac.csv")
2:
pandas.read_csv("C:/Users/DeePak/Desktop/myac.csv")
3:
pandas.read_csv("C://Users//DeePak//Desktop//myac.csv")
Intente escribir la ruta del archivo como
"C://Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener"
es decir, con doble barra diagonal inversa después de la unidad en lugar de
"C:/Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener"
La primera barra diagonal inversa de su cadena se interpreta como un carácter especial, de hecho porque es seguida por una "U", se interpreta como el inicio de un punto de código Unicode.
Para solucionar esto, debe escapar de las barras diagonales inversas en la cadena. No conozco Python específicamente, pero supongo que lo haces duplicando las barras invertidas:
data = open("C://Users//miche//Documents//school//jaar2//MIK//2.6//vektis_agb_zorgverlener")
Según los literales de cadena :
Los literales de cadena se pueden incluir entre comillas simples (es decir,
''...''
) o comillas dobles (es decir,"..."
). También pueden encerrarse en grupos coincidentes de tres comillas simples o dobles (generalmente se denominan cadenas de comillas triples).El carácter de barra diagonal inversa (es decir,
/
) se utiliza para escapar de los caracteres que, de lo contrario, tendrán un significado especial, como nueva línea, barra diagonal inversa o el carácter entre comillas. Los literales de cadena pueden opcionalmente tener como prefijo una letrar
oR
Dichas cadenas se denominan cadenas sin procesar y utilizan diferentes reglas para las secuencias de escape de barra invertida.En las cadenas entre comillas triples , se permiten nuevas líneas y comillas sin escapes , excepto que las tres comillas sin escapes en una fila terminan la cadena.
A menos que haya un prefijo
r
oR
, las secuencias de escape en cadenas se interpretan de acuerdo con reglas similares a las utilizadas por el Estándar C.
Entonces, idealmente, debe reemplazar la línea:
data = open("C:/Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener")
A cualquiera de los siguientes personajes:
-
Usando prefijo sin formato y comillas simples (es decir,
''...''
):data = open(r''C:/Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener'')
-
Usando comillas dobles (es decir,
"..."
) y el carácter de barra invertida de escape (es decir,/
):data = open("C://Users//miche//Documents//school//jaar2//MIK//2.6//vektis_agb_zorgverlener")
-
Utilizando comillas dobles (es decir,
"..."
) y el carácter de barra diagonal (es decir,/
):data = open("C:/Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener")
Simplemente puede poner
r
delante de
la cadena con su ruta real, que denota una cadena sin formato.
Por ejemplo:
data = open(r"C:/Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener")
Solo poner una r al frente funciona bien.
p.ej:
white = pd.read_csv(r"C:/Users/hydro/a.csv")
considéralo como una cadena cruda. Solo una respuesta simple, agregue r antes de su ruta de Windows.
import csv data = open(r"C:/Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener") data = csv.reader(data) print(data)
funcionó para mí neutralizando el ''/' por f = abierto (''F: // file.csv'')