Seite 1 von 1

bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Donnerstag 22. Februar 2018, 20:04
von egon11
Ich möchte aus einer normalen Textdatei aus jeder Zeile ab und bis einer bestimmten Stelle Zahlen, bzw. Buchstaben ausgeben.
In meinen Fall sind es Zahlen.
Aber das funktioniert irgendwie nicht, hier mal mein bisher versuchter Ansatz.

Code: Alles auswählen

with open('/home/pi/temperatur.txt') as a:
    b = a.read()
 for line in b:
     c  = line[0] [8:19]
     print(c)

"c" sollte eigentlich für jede Zeile nach dem 9. und vor dem 20. Zahl alles ausgegeben werden.
Was muss hier geändert werden?

Re: bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Donnerstag 22. Februar 2018, 20:16
von Sirius3
@egon11: da ist so einiges schief. a ist ein schlechter Namen für ein Dateiobjekt, ebenso der Name b für den gesamten Inhalt. Die for-Schleife geht dann auch nicht über Zeilen, sondern über einzelne Zeichen. Auch wenn line eine ganze Zeile wäre, wäre line[0] nur das erste Zeichen und [8:19] dann leer, weil ein einzelnes Zeichen nichts an den Positionen 8 bis 19 hat.

Ein Dateiformat, das auf bestimmte Stellen in Zeilen basiert, ist sehr fehleranfällig. Wie sieht die Datei denn aus und gibt es nicht die Möglichkeit ein anderes Kriterium zu nehmen?

Re: bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Donnerstag 22. Februar 2018, 20:29
von egon11
Das war mein Ausgangs code:

Code: Alles auswählen

with open('/var/logtemp.csv') as csvfile, \    
  cr = csv.reader(csvfile, delimiter= ',')
  cw = csv.writer(csvout)  

 
  for line in cr:
    datum  = line[0] [:10]
 
    temp  = int(line[1][2:] )
Ich wollte es nur statt einer CSV Datei eine .txt nehmen.
Das a und b sind nur Beispiele, würde das dann anders benennen.

Re: bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Donnerstag 22. Februar 2018, 20:42
von Sirius3
@egon11: was ist Dein Problem? Versuche exakt zu erklären, was Du erreichen möchtest, und nicht wie Du denkst, es machen zu müssen.

Was stört Dich an CSV?

Re: bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Donnerstag 22. Februar 2018, 20:44
von __deets__
Es gibt “eine TXT Datei” nicht. Das sagt nur, das da irgendwie Text drin ist. Genausowenig ist die Endung CSV bedeutsam. Da ist hoffentlich Daten als “character separated values” drin, aber magisch ist dem auch nicht so.

Wichtig ist also der Inhalt deiner Datei. Hast du davon ein Beispiel?

Re: bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Donnerstag 22. Februar 2018, 21:01
von egon11
Ich wollte das gleiche mit einer normalen machen.

Re: bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Donnerstag 22. Februar 2018, 21:05
von egon11
__deets__ hat geschrieben: Hast du davon ein Beispiel?
So sieht die Datei aus:

Code: Alles auswählen

17:06:52 22-02-2018 22.8 C
17:06:58 22-02-2018 22.8 C
17:07:04 22-02-2018 22.9 C
17:07:10 22-02-2018 22.8 C
17:07:15 22-02-2018 22.8 C
17:07:21 22-02-2018 22.9 C
17:07:27 22-02-2018 22.8 C
17:07:33 22-02-2018 22.9 C
17:07:39 22-02-2018 22.9 C
17:07:45 22-02-2018 22.9 C
17:07:51 22-02-2018 22.9 C
17:07:57 22-02-2018 22.9 C
17:08:03 22-02-2018 22.9 C
17:08:09 22-02-2018 22.9 C
17:08:15 22-02-2018 22.9 C
17:08:21 22-02-2018 22.9 C
17:08:26 22-02-2018 22.9 C
17:08:32 22-02-2018 22.9 C
17:08:38 22-02-2018 22.9 C
17:08:44 22-02-2018 22.9 C
17:08:50 22-02-2018 22.9 C
17:08:56 22-02-2018 22.9 C
17:09:02 22-02-2018 22.9 C
17:09:08 22-02-2018 22.9 C
17:09:14 22-02-2018 22.9 C
17:09:20 22-02-2018 22.9 C
17:09:26 22-02-2018 22.9 C
17:09:32 22-02-2018 22.9 C
17:09:38 22-02-2018 22.9 C
17:09:43 22-02-2018 22.9 C
17:09:49 22-02-2018 22.9 C
17:09:55 22-02-2018 22.9 C
17:10:01 22-02-2018 22.9 C
17:10:07 22-02-2018 22.9 C
17:10:13 22-02-2018 22.9 C 

Re: bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Donnerstag 22. Februar 2018, 21:09
von Sirius3
@egon11: dann hast Du ja eine Space-Separated-Values-Datei.

Re: bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Donnerstag 22. Februar 2018, 21:10
von __deets__
Na das ist doch CSV, nur mit Leerzeichen als Trenner. Kannst du doch angeben.

Re: bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Donnerstag 22. Februar 2018, 21:32
von egon11
Danke. Ich hab es jetzt hinbekommen mittels csv.

Edit: Also geht das in der Art nur mit CSV-Dateien?
Hier mein kleiner Cade der funktioniert:

Code: Alles auswählen

>>> import csv
>>> with open('/home/matze/temperatur.txt') as durch:
	 cr = csv.reader(durch)
	 for line in cr:
             datum  = line[0] [8:19]
             print(datum)

             
 22-02-2018
 22-02-2018
 22-02-2018

Re: bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Donnerstag 22. Februar 2018, 21:58
von Sirius3
@egon11: nein, Du hast es nicht hinbekommen. Eine Datei ohne Kommas als Komma-Separierte-Datei zu lesen, ist quatsch. Das Trennzeichen ist ein Leerzeichen!

Re: bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Donnerstag 22. Februar 2018, 22:15
von __deets__
@egon: bitte schau in die Dokumentation vom csv Modul. Es gibt einen Parameter “delimiter”, den du auf ein Leerzeichen setzen kannst.

Re: bestimmte Zahlen/Wörter aus einer Datei auslesen

Verfasst: Freitag 23. Februar 2018, 07:10
von egon11
Ok hab ich jetzt gemacht.