Hallo,
ich fange gerade an mit Python zu programmieren. Leider habe ich ansonsten auch sehr wenig Programmiererfahrung.
Ich muss mir ein kleines Programm basteln, welches eine Datei einließt und diese in einzelne Abschnitte zerlegt und dann den Inhalt in jeweils extra Dateien speichert. Problem ist nur, ich hänge schon beim einlesen der Datei, was wohl allerdings weniger mit einer falschen Programmierung, als wohl eher mit dem Inhalt zu tun hat.
Öffnet man die Datei in einem Editor sieht alles sehr konfus aus. Sie besteht aus einem Header mit ASCII Zeichen und einem Binärteil, welcher eine Bildinformation enthält. Dieser Bildteil besteht aus vielen unterschiedlichen Zeichen (auf gut Deutsch "Hieroglyphen")
Das einlesen klappt ganz gut bis ich zu einem Zeichen komme
Diesen Pfeil. Ab da ließt mir Python die Datei nicht weiter ins Shell.
"→"
Wie gesagt ich bin gerade am Anfange. Teste nur ob die Datei geladen werden kann, um sie dann in eine neue Datei abzuspeichern. Das Endprogramm wäre dann schon etwas komplizierter, aber bis dahin bin ich noch nicht gekommen.
Was mich sehr stutzig macht ist, dass dieser Pfeil "←" also in umgekehrter Richtung problemlos eingelesen wird.
Ich habe schon ein Freund gefragt, der deutlich mehr Erfahrung mit Python hat als ich, aber auch er war ratlos, warum Python sich weigert genannten Pfeil einzulesen.
Muss hier ggf. ein Zeichensatz geladen werden, aber warum ließt er nur diesen Pfeil nicht ein, weil es kommen sicher einige Symbole aus dem selben Zeichensatz in der Datei vor.
Probleme beim einlesen einer Datei?!
Wenn eine Datei Binärdaten enthält, musst Du sie auch als Binärdatei öffnen. Der "Pfeil" ist nur eine Art den entsprechenden Bytewert in der Datei dar zu stellen. Ich nehme mal an, es ist der Wert, den Windows bei Textdateien als Dateiende interpretiert. Ein Relikt aus CP/M-Zeiten als die Dateigrösse noch nicht in Bytes gemessen wurde, sondern in Diskettenblöcken.
Danke für den Tipp. Die Möglichkeit, die Datei als Binärdatei zu öffnen war mir noch nicht bekannt. Eigentlich ja auch nicht nötig, wenn er alles einlesen würde, aber wenn Windows den "Pfeil" als Dateiende interpretiert, wird es dann doch nötig. Auf jeden Fall klappt jetzt alles und ich kann mich an die weitere Programmierung machen.
Ob eine Behandlung, die unter CP/M mal wichtig war und technisch IMHO ziemlich schrottig ist, als "intelligente Behandlung" bezeichnet werden kann? Also ich weise an der Stelle immer gerne darauf hin, dass Python da unschuldig ist und Windows diesen Blödsinn macht.