Unicode error

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lars23579
User
Beiträge: 2
Registriert: Samstag 5. Januar 2019, 18:45

Guten Tag,

Ich versuche eine mnist-Datei in Python einzulesen um damit ein neuronales Netz zu trainieren.
Mein Programm sieht wie folgt aus :

data_file = open("C:\Users\lars\Desktop\NeuronaleNetze\mnist_train_100.csv",'r')
data_list = data_file.readlines()
data_file.close()

(aus den Buch:
Neuronale Netze selbst programmieren
von Tariq Rashid )

Ich bekomme dann folgende Fehlermeldung:

File "<ipython-input-2-4602d6f719cf>", line 1
data_file = open("C:\Users\lars\Desktop\NeuronaleNetze\mnist_train_100.csv",'r')
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

Was muss ich tun damit die Datei geöffnet werden muss ?

Danke schon mal

Anmerkung: Mir ist bewusst das ähnliche Fragen schon öfters in solchen Foren gestellt wurden allerdings habe ich keine Antwort finden können die mein Problem behebt
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Also wenn ich die wortwoertliche Fehlermeldung die du hast in google werfe, und dann auf den *zweiten* Link klicke - dann kommt das hier:

https://python-forum.io/Thread-unicode- ... -truncated

So weit also zu deiner ausfuehrlichen Suche.

Und da steht auch der Grund fuer dein Problem. Windows-Pfade mit backslashes.
Lars23579
User
Beiträge: 2
Registriert: Samstag 5. Januar 2019, 18:45

Vielen Dank für die schnelle Antwort, leider bringt mich diese nicht weiter
Ich war auf dieser Seite bereits bevor ich selber nach Hilfe gefragt hatte und habe die dort beschriebenen Lösungsansätze Ausprobiert, welche alle nicht funktioniert haben,
wenn ich beispielsweise doppelte \\ benutze kommt diese Fehlermeldung:

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\lars\\Desktop\\NeuronaleNetze\\mnist_train_100.csv'

wenn ich nur bei den ersten 2 doppelte \ nehme kommt das bei raus:

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 25-26: malformed \N character escape

wenn ich versuche die Datei mit Hilfe von Pandas zu öffnen erscheint entweder die Fehlermeldung wie beim Ursprünglichen Programm oder wenn ich doppelte \\ benutzte eine sehr lange Fehlermeldnug die wie folgt beginnt:

---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-9-f233d56a8a71> in <module>
----> 1 test = pd.read_csv("C:\\Users\\lars\\Desktop\\NeuronaleNetze\\mnist_train_100.csv")

/srv/conda/lib/python3.6/site-packages/pandas/io/parsers.py in [...]

Gibt es noch andere Möglichkeiten woran der Fehler liegen könnte ?

Danke schon mal in voraus
Benutzeravatar
__blackjack__
User
Beiträge: 14036
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Lars23579: Offensichtlich gibt es diese Datei nicht. Wo hast Du den Pfad denn her?
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Sirius3
User
Beiträge: 18269
Registriert: Sonntag 21. Oktober 2012, 17:20

Der Pfad sieht nach Windows aus, die Sourcedatei, in der der Fehler auftaucht aber nach Linux. Was für ein System benutzt Du denn nun? Falls das Jupyterlab sein soll, das kann auch nur auf die Dateien auf dem Server zugreifen, nicht auf den Client.
Benutzeravatar
ThomasL
User
Beiträge: 1378
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Alle Fehlermeldungen besagen, dass unter dem angegebenen Pfad diese Datei nicht zu finden ist. Sicher das der Pfad richtig ist?
Die Datei mnist_train_100.csv sollte sich der Einfachheit halber im gleichen Ordner wie die Notebook Datei befinden.
Dann kannst du die mit data_file = open('mnist_train_100.csv', 'r') öffnen.
Besser wäre jedoch, wenn du

Code: Alles auswählen

with open('mnist_train_100.csv', 'r') as data_file:
    data_list = data_file.readlines()
verwendest.
Oder noch besser mit pandas.read_csv().
Es muss halt einfach nur der Pfad stimmen.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Sirius3
User
Beiträge: 18269
Registriert: Sonntag 21. Oktober 2012, 17:20

@ThomasL: Häh? pandas.read_csv verwendet der OP doch schon!
Benutzeravatar
ThomasL
User
Beiträge: 1378
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Sirius3 hat geschrieben: Sonntag 6. Januar 2019, 14:21 @ThomasL: Häh? pandas.read_csv verwendet der OP doch schon!
Ja ich weiß, deshalb habe ich es ja auch als bessere Möglichkeit erwähnt.
Aber was ist jetzt dein Verständnisproblem dabei?
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Antworten