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.
@Willhelm: Schau Dir mal die `seek()`-Methode an. Wobei es sich hoffentlich nicht tatsächlich um eine Textdatei und eine vierstellige Zahl handelt, das ist dann nämlich nicht besonders robust da auf bestimmte Bytepositionen zuzugreifen.
Dateien haben neben der read-Methode noch eine seek-Methode, damit kannst du bis zu einer bestimmten Stelle springen. In deinem Fall bis zur Position 76. Anschließend kannst du dann weitere vier Zeichen auslesen.
Dateien solltest du am besten mittels with-Statement öffnen, dann werden diese auch wieder vernünftig geschlossen. Um den close-Aufruf musst du dir dann keine Gedanken mehr machen, auch nicht, wenn eine Exception auftritt. In kenne den Inhalt deiner Datei nicht, aber wahrscheinlich möchtest du sie lieber im Binärmodus "rb" statt "r" öffnen. Im Textmodus werden unter Umständen die Zeilenenden geändert, was in deinem Fall zu Fehlern führen könnte.
Dein Ansatz ist falsch. Ob du mit den ersten 79 _Bytes_ deine Zahlen erwischst, haengt vom Encoding der Datei ab.
Mit ASCII stimmt das, mit UTF-8 zb aber nur wenn bis dorthin tatsaechlich nur Zahlen (bzw ASCII kodierbare Zeichen) enthalten sind.
Generell stimmt das Vorgehen da aber nicht.
Vorausgesetzt es klappt also zufaellig, dann kannst du `file.seek` benutzen.
Generell: Benutze die `with`-Anweisung um Dateien zu oeffnen.
@Willhelm: Wahrscheinlich wirst Du keine Schreibrechte haben. Und noch mal: Wenn das eine Textdatei ist, dann hör auf da Bytes an festen Offsets auslesen zu wollen und verarbeite das auf eine robustere Art. Niemand garantiert Dir das die Ziffern immer an diesen Stellen stehen, das kann sich jederzeit ändern.
Ok Danke für den hinweis ich habe rw+ in r umgewandelt und es funktioniert jetzt.
Für dieses File trift dies nicht zu weil es die ganze zeit wieder überschrieben wird. und Die Temperatur immer an dieser stelle befindet. Aber danke dennoch.
@Willhelm: Doch auf diese Datei trifft zu das nicht garantiert ist, dass die Temperatur immer exakt an dem Offset steht, und auch in Zukunft immer stehen wird. Es sei denn Du hast diese Garantie tatsächlich wörtlich so in der Dokumentation des Gerätetreibers gefunden, was ich stark bezweifle.
Im Gegenteil kann Dein Ansatz schon falsche Ergebnisse liefern wenn es Probleme bei der Übertragung gab und die Prüfsumme falsch ist, also in der ersten Zeile ein NO statt eines YES steht. Dann ist nämlich nicht nur der Temperaturwert undefiniert, sondern Du liest die falschen Positionen aus, weil NO ein Byte kürzer als YES ist. Eine robuste Lösung behandelt diese Datei als Textdatei und überprüft als erstes in der ersten Zeile mindestens mal ob sie mit YES endet, und sucht sich dann in der zweiten Zeile das 't=47110'-Muster um die Temperatur zu ermitteln.
@Willhelm: Schau Dir einfach mal an was Zeichenketten so an Operationen und Methoden unterstützen. Reguläre Ausdrücke (`re`-Modul) sind bei solchen Aufgaben auch oft nützlich, hier aber wohl nicht nötig.