it-swarm.com.de

(Unicode-Fehler) Der 'Unicodeescape'-Codec kann keine Bytes an Position 2-3 decodieren: \ UXXXXXXXX-Escape abgeschnitten

Ich versuche, eine CSV-Datei in Python (Spyder) einzulesen, erhalte aber immer wieder eine Fehlermeldung. Mein Code:

import csv

data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
data = csv.reader(data)  
print(data)

Ich erhalte folgenden Fehler:

SyntaxError: (Unicode-Fehler) 'Unicodeescape'-Codec kann keine Bytes an Position 2-3 dekodieren:\UXXXXXXXX-Escape abgeschnitten

Ich habe versucht, das\mit\oder mit/zu ersetzen, und ich habe versucht, vor "C .. ein r zu setzen, aber all diese Dinge haben nicht funktioniert.

121
Miesje

Dieser Fehler tritt auf, weil Sie eine normale Zeichenfolge als Pfad verwenden. Sie können eine der folgenden Lösungen verwenden, um Ihr Problem zu beheben.

  1. Setzen Sie einfach r vor Ihre normale Zeichenfolge, um die normale Zeichenfolge in eine unformatierte Zeichenfolge umzuwandeln:

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")
164

Der erste Backslash in Ihrer Zeichenfolge wird als Sonderzeichen interpretiert, da ihm ein "U" folgt und er als Beginn eines Unicode-Codepunkts interpretiert wird.

Um dies zu beheben, müssen Sie die umgekehrten Schrägstriche in der Zeichenfolge maskieren. Ich kenne Python nicht speziell, aber ich würde vermuten, dass Sie es tun, indem Sie die Backslashes verdoppeln:

data = open("C:\\Users\\miche\\Documents\\school\\jaar2\\MIK\\2.6\\vektis_agb_zorgverlener")
23
thomasrutter

Sie können einfach rvor den String mit Ihrem tatsächlichen Pfad setzen, der einen Roh-String kennzeichnet. Zum Beispiel:

data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
13
Mohit Solanki

Versuchen Sie, den Dateipfad als "C:\\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener" zu schreiben, d. H. Mit doppeltem Backslash nach dem Laufwerk im Gegensatz zu "C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener".

10
Ibrahim Isa

betrachten Sie es als eine rohe Zeichenfolge. Füge einfach r vor deinem Windows-Pfad hinzu.

import csv
data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
data = csv.reader(data)  
print(data)
10

Gemäß String-Literale :

String-Literale können in einfache Anführungszeichen (dh '...') oder doppelte Anführungszeichen (dh "..." ). Sie können auch in übereinstimmende Gruppen von drei einfachen oder doppelten Anführungszeichen eingeschlossen werden (diese werden im Allgemeinen als dreifach zitierte Zeichenfolgen bezeichnet).

Das Backslash-Zeichen (d. H. \) wird verwendet, um Zeichen zu maskieren, die ansonsten eine besondere Bedeutung haben, z. B. Zeilenumbruch, Backslash selbst oder das Anführungszeichen. String-Literalen kann optional der Buchstabe r oder R vorangestellt werden. Solche Zeichenfolgen werden als Rohzeichenfolgen bezeichnet und verwenden unterschiedliche Regeln für umgekehrte Escape-Sequenzen.

In Strings mit dreifachen Anführungszeichen sind Zeilenumbrüche und Anführungszeichen zulässig, außer dass die drei Anführungszeichen in einer Reihe die Zeichenfolge beenden.

Sofern kein Präfix r oder R vorhanden ist, werden Escape-Sequenzen in Zeichenfolgen nach Regeln interpretiert, die denen von Standard C ähneln.

Im Idealfall müssen Sie die Zeile ersetzen:

data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")

Zu einem der folgenden Zeichen:

  • Verwenden von einfachen Präfixen und einfachen Anführungszeichen (d. H. '...'):

    data = open(r'C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener')
    
  • Verwenden von doppelten Anführungszeichen (d. H. "...") und Maskieren von Backslash-Zeichen (d. H. \):

    data = open("C:\\Users\\miche\\Documents\\school\\jaar2\\MIK\\2.6\\vektis_agb_zorgverlener")
    
  • Verwenden von Anführungszeichen (d. H. "...") und Schrägstrichen (d. H. /):

    data = open("C:/Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener")
    
7
DebanjanB

es funktionierte für mich, indem ich das '\' mit f = open neutralisierte ('F: \\ file.csv')

3
vinod

Einfach ein R voranstellen funktioniert gut.

z.B:

  white = pd.read_csv(r"C:\Users\hydro\a.csv")
3
Hydrogirl

Das double\sollte für Windows funktionieren, aber Sie müssen sich noch um die Ordner kümmern, die Sie in Ihrem Pfad erwähnen. Alle (mit Ausnahme des Dateinamens) müssen vorhanden sein. Andernfalls erhalten Sie eine Fehlermeldung.

0
G4W