großem txt files einlesen --> ram overflow
Verfasst: Mittwoch 4. Februar 2009, 21:48
Hallo Leute!
Ich bin dabei Messwerte aus großen (~100MB txt Dateien) auszulesen , diese in vier Listen zu organisieren (da vier verschieden Eigenschaften) und im Anschluß diese vier Sub Listen zu sortieren (aufsteigend nach dem ersten Wert).
Zusammensetzung eines Listeneintrages ist : Meßwert/ x/y/z Koordinaten
Die Listen verwende ich dann für weitere Berechnungen.
Das ganze mache ich in einer Schleife für 85 Strukturen -- tja --- und dann läuft mir der Ram über .
Für das Auslesen nehme ich readlines() und split() (geschlossen wird das txt file auch vorschriftsmäßig)
Mit kleinen Files funktioniert mein Code
Meine Fragen:
Gibt es eine effizientere Methode txt files auszulesen als mit readlines?
Sind Listen Ressourcen schonender als tuples oder arrays oder bietet sich eine andere Datenstruktur an?
Da ich in einer Loop die entsprechende Funktion aufrufe, sollten die Listen immer wieder überschrieben werden -- wieso läuft mein Ram über?
und das Wichtigste: kann ich LISTEN pickeln (kenne das nur von strings) o.ä. um sie aus dem Ram zu bekommen?
Besten Dank,
flo
Ich bin dabei Messwerte aus großen (~100MB txt Dateien) auszulesen , diese in vier Listen zu organisieren (da vier verschieden Eigenschaften) und im Anschluß diese vier Sub Listen zu sortieren (aufsteigend nach dem ersten Wert).
Zusammensetzung eines Listeneintrages ist : Meßwert/ x/y/z Koordinaten
Die Listen verwende ich dann für weitere Berechnungen.
Das ganze mache ich in einer Schleife für 85 Strukturen -- tja --- und dann läuft mir der Ram über .
Für das Auslesen nehme ich readlines() und split() (geschlossen wird das txt file auch vorschriftsmäßig)
Mit kleinen Files funktioniert mein Code
Meine Fragen:
Gibt es eine effizientere Methode txt files auszulesen als mit readlines?
Sind Listen Ressourcen schonender als tuples oder arrays oder bietet sich eine andere Datenstruktur an?
Da ich in einer Loop die entsprechende Funktion aufrufe, sollten die Listen immer wieder überschrieben werden -- wieso läuft mein Ram über?
und das Wichtigste: kann ich LISTEN pickeln (kenne das nur von strings) o.ä. um sie aus dem Ram zu bekommen?
Besten Dank,
flo