Seite 1 von 1

aus datei in dictionaries

Verfasst: Dienstag 29. November 2011, 18:22
von Milhouse
Hallo alle miteinander.
Ich habe da eine Frage bei der mir hoffentlich geholfen werden kann.
Ich habe hier eine datei mit dem namen wortliste.dat, in der sich pro zeile ein wort, sein grammatisches geschlecht und seine frequenz befindet. diese informationen sind getrennt durch TABS, also ist das format quasi "Wort\tGeschlecht\tFrequenz\n".
Ich möchte nun die informationen aus dieser datei in zwei dictionaries einordnen, genannt "Frequenz" und "Geschlecht".
Wie stelle ich das an?

Habe natürlich bereits den Befehl eingegeben die datei "wortliste.dat" zu öffnen mit dem argument "r".

Re: aus datei in dictionaries

Verfasst: Dienstag 29. November 2011, 18:27
von problembär
Na ja, zeig' doch erstmal,

- wie Du eine Datei einliest und dann,
- wie Du ein leeres Dictionary mit Werten auffüllst.

Re: aus datei in dictionaries

Verfasst: Dienstag 29. November 2011, 18:40
von Milhouse
nunja einlesen tue ich die mit

Code: Alles auswählen

open("wortliste.dat", "r")
nur wie ich das jetzt schaffe dass im einen dictionary der key gleich dem wort in der datei ist und value gleich der frequenz ist, und im anderen dictionary der key auch das wort ist nur value gleich dem geschlecht ist.

Re: aus datei in dictionaries

Verfasst: Dienstag 29. November 2011, 18:45
von EyDu
Schön, dass du Dateien zum Lesen öffnen kannst, aber von einem halbwegs eigenständigen Ansatz ist das natürlich weit entfernt. Wie sieht denn dein bisheriger Versuch aus?

Re: aus datei in dictionaries

Verfasst: Dienstag 29. November 2011, 18:49
von Milhouse
naja das ist mein ansatz. aber wie soll ich denn nun weitermachen wenn ich nichtmal weiß wie ich wörter aus einer datei in ein dictionary packe und sie die richigen values haben?
Bin nunmal noch Anfänger.

Re: aus datei in dictionaries

Verfasst: Dienstag 29. November 2011, 18:51
von Hyperion
Milhouse hat geschrieben:naja das ist mein ansatz. aber wie soll ich denn nun weitermachen wenn ich nichtmal weiß wie ich wörter aus einer datei in ein dictionary packe und sie die richigen values haben?
Bin nunmal noch Anfänger.
Dann pack doch mal Wörter aus einem String in ein Dictionary! Ob der später mal aus einer Datei kommt ist ziemlich egal...

Re: aus datei in dictionaries

Verfasst: Dienstag 29. November 2011, 18:53
von EyDu
Dann solltest du vielleicht noch einmal das Tutorial durcharbeiten.

Edit: durcharbeiten nicht nur lesen.

Re: aus datei in dictionaries

Verfasst: Dienstag 29. November 2011, 23:17
von problembär
Milhouse hat geschrieben:nunja einlesen tue ich die mit

Code: Alles auswählen

open("wortliste.dat", "r")
Das liest so aber leider gar nichts ein. Außerdem brauchst Du das, was open() zurückgibt, nämlich ein Filehandle.
Lies bitte erst mal, was das ist, wie Du es erhältst und wie Du damit arbeitest (davon lesen, es schließen, usw.).

Außerdem hast Du meine zweite Frage nach dem Füllen eines Dictionaries noch nicht beantwortet.
Ich meine, es hätte ja wohl keinen Sinn, wenn man die Daten irgendwie in das gewünschte Dictionary bekommt, aber dann gar nicht weiß, wie man mit Dictionaries arbeitet. Mußt Du zugeben, oder?

Re: aus datei in dictionaries

Verfasst: Mittwoch 30. November 2011, 21:30
von bb1898
Milhouse hat geschrieben:naja das ist mein ansatz. aber wie soll ich denn nun weitermachen wenn ich nichtmal weiß wie ich wörter aus einer datei in ein dictionary packe und sie die richigen values haben?
Bin nunmal noch Anfänger.
Aus diesem Zustand kommt man immer nur schrittchenweise raus, aber ganz ohne Schrittchen geht's auch nicht. Vielleicht hilft eine kleine Zerlegung des Problems:

Code: Alles auswählen

Als erstes zwei leere Dictionaries erzeugen und ihnen die Namen Frequenz und Geschlecht geben.

Datei öffnen und dem dabei erzeugten Dateiobjekt einen Namen geben (ersteres hast Du ja schon, zweiteres fehlt noch - aber ohne das kommst Du nicht zum nächsten Schritt). Nennen wir das Ding mal rohdaten.

Für jede Zeile aus rohdaten Folgendes machen:

    Die Zeile an den Tabulatorzeichen auftrennen in drei Teile, denen wir die Namen aktuelles_wort, aktuelles_geschlecht, aktuelle_frequenz geben.

    Dem Dictionary Geschlecht einen neuen Eintrag mit dem Schlüssel aktuelles_wort und dem Wert aktuelles_geschlecht zufügen.

    Mit dem Dictionary Frequenz analog verfahren.

Die Datei wieder schließen.
So. Und jetzt jeden Punkt dieser Liste mit Hilfe von Tutorial, Lehrbuch (falls vorhanden) und Dokumentation lösen, bei Bedarf konkrete Fragen dazu stellen. Wenn das so weit läuft, und erst dann, können die Feinheiten kommen, als da wären:

- So wie angedeutet funktioniert das nur, wenn jede Zeile Deiner Datei mit einem anderen Wort anfängt. Ist das nicht gegeben, braucht es zusätzliche Überlegungen zu dem Punkt "neuer Eintrag mit dem Schlüssel aktuelles_wort".

- Anständiges und hinreichend modernes Python erlaubt, die Datei so zu öffnen, dass sie sich am Ende automatisch wieder schließt (Stichwort "with").

- Zum Lesen einer Datei, deren Zeilen durch feste Feldtrenner (hier die TABs) gegliedert sind, kann man fortgeschrittenerweise auch das Modul csv benutzen. Ob das im gegebenen Fall Overkill ist, darüber kann man streiten.

Aber diese drei Dinge kriegen wir später.

Re: aus datei in dictionaries

Verfasst: Donnerstag 1. Dezember 2011, 04:22
von Leonidas
Und warum erwähnt keiner das CSV-Modul? Also ich sehe hier ganz deutlich tab separated values.

Re: aus datei in dictionaries

Verfasst: Donnerstag 1. Dezember 2011, 04:43
von BlackJack
@Leonidas: Letzter Spiegelstrich in dem Beitrag vor Deinem. ;-)

Re: aus datei in dictionaries

Verfasst: Donnerstag 1. Dezember 2011, 06:12
von Leonidas
Oh, Fail :oops:

Re: aus datei in dictionaries

Verfasst: Donnerstag 1. Dezember 2011, 13:08
von Hyperion
Leonidas hat geschrieben:Oh, Fail :oops:
Ach quatsch. Man kann so etwas nicht oft genug erwähnen ;-)