Thread Zeile x _schnell_ aus riesigem file raussuchen ?
(19 answers)
Opened by Student87 at 2013-02-19 12:50
Wow, der filepointer ist ja sauschnell. Das funktioniert sehr gut, danke pq!
Ja, jede Zeile enthält nur einen Buchstaben (A/T/G/C/N/M). Schätze mal von diesen Buchstaben nimmt jeder nur einen Byte (Im Test hab ich jedenfalls so gerechnet), so dass jede Zeile aus 2 Bytes besteht (Buchstabe + Zeilenumbruch) - d.h. ich kann die seek-position für Zeile x errechnen über (x - 1) * 2 Damit sind die beiden 250 Mio Zeilen Listen schonmal kein Problem mehr. Die dritte Liste enthält aber unregelmäßige Bytezahlen pro Zeile. Ich hab mittlerweile das Tie-Modul gefunden. Damit scheint man wohl auf files wie auf Arrays zugreifen zu können, ohne dass die files in den Arbeitsspeicher geladen werden müssen. Ist dieses Modul schneller/langsamer/gleich schnell wie/als seek()? Weil selbst wenn ich das Modul für die dritte Liste verwende: für die ersten beiden Listen (Wo ich die Bytezahl pro Zeile kenne) könnte ich trotzdem seek benutzen, oder tun sich die beiden Lösungen nichts? EDIT: Gut also nach Möglichkeit read, ansonsten tie. Danke! Last edited: 2013-02-19 14:36:24 +0100 (CET) |