Seite 1 von 1
Werte aus einer Tabelle auslesen
Verfasst: Dienstag 19. Januar 2016, 15:40
von Ronsen90
Ich brauche euren Rat. Ich denke, das Problem ist trivial, aber ich steh gerade auf dem Schlauch.
Folgende Aufgabe: Ich habe eine .txt-Datei, in der meine Daten liegen. Der Aufbau der Datei sieht etwa wiefolgt aus:
Code: Alles auswählen
unit=nT UT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
DAY
1 -14 -14 -15 -13 -12 -14 -13 -10 -8 -7 -3 -1 3 7 10 7 3 1 0 -3 -5 -7 -7 -15
2 -22 -21 -16 -7 -3 -4 -5 0 -1 2 10 8 8 4 -4 -2 0 -3 -17 -30 -42 -42 -38 -31
3 -32 -36 -28 -20 -9 -18 -29 -27 -23 -25 -23 -25 -20 -17 -12 -12 -14 -15 -16 -15 -12 -13 -14 -16
Ich möchte jetzt die Daten von Tag 1 (von -14 bis -15) gegen die Stunden (von 1 bis 24) plotten.
Dazu dachte ich mir, ich zerlege den Spaß zeilenweise.
Code: Alles auswählen
file = open('Datei.txt')
line = file.readlines()
start = line[3]
Damit gibt Python mir schon mal die gewünschte Zeile aus, wenn auch noch mit der 1 am Anfang, die ich noch loswerden muss.
Code: Alles auswählen
1 -14 -14 -15 -13 -12 -14 -13 -10 -8 -7 -3 -1 3 7 10 7 3 1 0 -3 -5 -7 -7 -15
So, wie kann ich jetzt die Leerzeichen durch Kommata ersetzen bzw. daraus eine Liste machen? Mittels list(start) oder replace hat es nicht so gut funktioniert. list trennt ja jedes einzelne Zeichen, was z.B. bei -13 unerwünscht ist.
Außerdem ist problematisch, dass an einzelnen Stellen mehrere Leerzeichen hintereinander kommen.
Strip funktioniert auch nicht, da nimmt er bloß das erste Leerzeichen raus, welches vor der 1 steht.
Kann mir bitte jemand auf dei Sprünge helfen?
Beste Grüße,
Ron
Re: Werte aus einer Tabelle auslesen
Verfasst: Dienstag 19. Januar 2016, 15:49
von BlackJack
@Ronsen90: Das gehört eigentlich zu den recht grundlegenden Operationen auf Zeichenketten. Welches Tutorial oder welche Quelle nutzt Du denn um Python zu lernen?
Re: Werte aus einer Tabelle auslesen
Verfasst: Dienstag 19. Januar 2016, 19:52
von /me
Ronsen90 hat geschrieben:Kann mir bitte jemand auf dei Sprünge helfen?
Geh noch mal durch das Tutorial. Du suchst
split.
Re: Werte aus einer Tabelle auslesen
Verfasst: Dienstag 19. Januar 2016, 21:09
von Ronsen90
Hallo,
Welches Tutorial oder welche Quelle nutzt Du denn um Python zu lernen?
Ich versuche immer am praktischen Beispiel zu arbeiten und google mich dann durch... hab auch ein E-Book, aber so richtig effektiv kann ich damit nicht arbeiten. Man findet halt immer nur Lösungen für simple Probleme und sich das dann für seine komplexere Anwendung zusammenzubasteln, daran muss ich noch arbeiten. Kann mein Problem auch manchmal einfach nicht so richtig beschreiben und weiß demnach nicht, wonach ich genau suchen muss. Darum habe ich halt hier geschrieben.
Programmiere auch erst etwa seit einem halben Jahr und nicht sehr regelmäßig.
Geh noch mal durch das Tutorial. Du suchst split.
Okay, werde ich versuchen.
Vielleicht reicht dieser Anschubser ja schon. Kenne halt noch nicht alle gängigen Funktionen.
Melde mich dann noch mal, wenns geklappt hat oder ich nicht weiter komme.
Re: Werte aus einer Tabelle auslesen
Verfasst: Dienstag 19. Januar 2016, 21:17
von BlackJack
@Ronsen90: Die Vorgehensweise hilft nicht bei grundlegenden Sachen. Die muss man sich schon selbst erarbeiten. Und nur durch Beispiele im Netz suchen lernt man nicht wirklich die Zusammenhänge. Falls doch dann nur zufällig und man kann genau so gut falsche Schlüsse aus Beispielen ziehen und kommt dann an anderen Stellen deswegen nicht weiter, weil sich falsche Ideen von dem was da passiert, im Kopf festgesetzt haben.
Ausserdem sollte bei so trivialen Sachen eigentlich die Python-Dokumentation näher liegen als *irgendwas* im Netz. Du willst etwas mit Zeichenketten machen. Die Dokumentation zum `str`-Typ ist ja nun nicht *sooo* umfangreich das man die Methode dort nicht finden könnte.
Re: Werte aus einer Tabelle auslesen
Verfasst: Mittwoch 20. Januar 2016, 10:46
von Ronsen90
Meinst du diese Seite?
https://docs.python.org/2/library/strin ... ule-string
Doch, ich finde schon, dass das sehr viel umfangreicher ist, als mal im Forum kurz nachzufragen und sich einen Anstoß für ein konkretes Problem zu suchen.
Immer, wenn ich Python mit Büchern oder solchen Websiten lerne, verpulvere ich Unmengen Zeit in Dinge, die ich gar nicht brauche. Und wenn doch, habe ich das zu gegebener Zeit eh wieder vergessen und muss es neu aufarbeiten. Das empfinde ich einfach als sehr ineffizient.
Edit: im Fall von string.split() stehen auf der Seite ja auch keine Beispiele. Da dauert es auch umso länger, zu verstehen, was der Befehl macht
Re: Werte aus einer Tabelle auslesen
Verfasst: Mittwoch 20. Januar 2016, 11:20
von Ronsen90
@ / me
Danke. Der split-Befehl hat mir geholfen. Den Rest konnte ich mir erstmal ganz gut selbst zusammenbasteln.
Re: Werte aus einer Tabelle auslesen
Verfasst: Mittwoch 20. Januar 2016, 11:27
von BlackJack
@Ronsen90: Das ist die Dokumentation zum `string`-Modul. Die zum `str`-Typ ist bei den Standardtypen und man sollte vielleicht einen Abschnitt davor anfangen „
Sequence Types — str, unicode, list, tuple, bytearray, buffer, xrange“, weil Zeichenketten auch Sequenzen sind.
*Alles* ist umfangreicher als die Arbeit von jemand anderem machen zu lassen, wobei das wie gesagt nicht einmal wirklich funktioniert weil Du dabei nicht die Grundlagen lernst, sondern jetzt *eine* Methode zusätzlich kennst und beim nächsten mal wieder fragen musst.
Wenn Du die Grundlagen nicht lernst, musst Du immer wieder nachfragen. Und bekommst immer weniger Antworten, weil irgendwann keiner mehr Lust hat Deine Faulheit zu unterstützen. Das würde ich als viel ineffizienter ansehen als es selber zu lernen und dann auch selber zu können. Der Unterschied zwischen immer wieder nachfragen bis Du's drauf hast und immer wieder selber Grundlagen durcharbeiten bis Du's drauf hast ist der das Du andere damit beschäftigst Deine Aufgaben zu lösen und dass es insgesamt länger dauert bis Du's drauf hast weil Du nicht umfassend die Grundlagen lernst sondern immer nur kleine Häppchen die Du gerade brauchst.
Bei den Grundlagen gibt auch nicht viel was man umsonst lernt weil man es nicht brauchen wird, denn die heissen ja nicht umsonst *Grundlagen*. Darauf baut vieles auf. Mit Sequenzen und Zeichenketten muss man in jedem Programm umgehen können das nicht nur ein triviales Zahlenratespiel ist.
Bei der Dokumentation der `split()`-Methode stehen Beispiele. Wenn man lernt sollte man sich aber auch seine eigenen Beispiele schaffen. Den Dokumentationstext lesen und dann in einer Python-Shell überprüfen ob man verstanden hat was da steht. Sachen ausprobieren und schauen ob da das heraus kommt was man erwartet, und falls nicht herausfinden warum nicht. Das braucht Zeit, aber nur so lernt man wirklich. Und ein derart erarbeitetes Wissen, bei dem man selber ein wenig forscht, bleibt auch im Gedächtnis, weil man da nicht nur irgendwelche Beispiele überflogen und sich Methodennamen hat sagen lassen, sondern weil man selbst Erfahrungen gemacht hat.
Re: Werte aus einer Tabelle auslesen
Verfasst: Mittwoch 20. Januar 2016, 11:42
von Ronsen90
Ich schreib jetzt noch eine Sache dazu und dann ist es von meiner Seite aus gut.
Ich durchstöbere für alles, was ich in Python brauche, Dokumentationen, Bücher, Forenbeiträge, ehe ich jemanden persönlich oder im Forum frage. Da ich gestern das Gesuchte nicht innerhalb einer Stunde gefunden habe, habe ich es mir erlaubt, hier einen Beitrag zu erstellen, damit ich nicht noch 2-3 Stunden daran hänge. Das wird ja wohl noch erlaubt sein. In der Regel beantworte ich mir 90 % meiner Fragen selbst.
So komme ich bislang gut voran und mit Faulheit hat das mMn nichts zu tun. Ich habe schlicht nicht die Zeit, mich jetzt ewig durch Grundlagen zu wälzen, da meine Arbeitszeit noch von einigen anderen Dingen belegt wird. Ich könnte mich jetzt entscheiden, ob du mich faul nennst oder mein Chef, wenn er keine Fortschritte sieht.
Und zuletzt steht es jedem frei, ob er mir helfen will oder nicht. Ich denke nicht, dass es so oft vorkommen wird, dass sich die Leute von meiner "Faulheit" genervt fühlen.