Seite 1 von 1

Unicode error

Verfasst: Samstag 5. Januar 2019, 19:01
von Lars23579
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

Re: Unicode error

Verfasst: Samstag 5. Januar 2019, 19:05
von __deets__
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.

Re: Unicode error

Verfasst: Samstag 5. Januar 2019, 21:59
von Lars23579
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

Re: Unicode error

Verfasst: Samstag 5. Januar 2019, 22:27
von __blackjack__
@Lars23579: Offensichtlich gibt es diese Datei nicht. Wo hast Du den Pfad denn her?

Re: Unicode error

Verfasst: Samstag 5. Januar 2019, 22:37
von Sirius3
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.

Re: Unicode error

Verfasst: Sonntag 6. Januar 2019, 10:48
von ThomasL
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.

Re: Unicode error

Verfasst: Sonntag 6. Januar 2019, 14:21
von Sirius3
@ThomasL: Häh? pandas.read_csv verwendet der OP doch schon!

Re: Unicode error

Verfasst: Sonntag 6. Januar 2019, 14:46
von ThomasL
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?