Seite 1 von 1

"Daten" Liste in Datei schreiben?

Verfasst: Donnerstag 27. August 2009, 23:28
von krisi12345
HI!
Ich habe folgendes Problem:
Ich habe eine Art Datenbank Datei in der die verschiedenen "Werte" durch verschieden lange Leerstellen geteilt sind:

Code: Alles auswählen

wert111  wert112   wert121  wert122/n (Zeilenbruch)
wert211  wert212   wert221  wert222/n
Die Datei wurde dann mit readlines erstmal in (diesem Beispiel in) eine Liste aus zwei Teilen gelesen, dann mit " " gesplitet und das nochmal mit " ".
Das sieht jetzt etwa so aus:
[[[wert111, wert112],[wert121, wert122]],[[wert211, wert212], [wert221, wert222]]]

An z.B. Liste[0][0] habe Ich noch etwas angehängt und jetzt habe Ich aber wieder Probleme in die ganze Liste die richtigen Leerstellen und Zeilenbrüche einzufügen um es mit dem angehängten Wert wieder in die Datei zu schreiben.
Ich habe das erstmal mit untereinander geordneten for schleifen probiert:

Code: Alles auswählen

for....:
  for....:
    for....:
      ....
Das hat aber nicht geklappt, wahrscheinlich habe Ich den überblick verloren.
Kann Mir einer helfen?

Den kompletten "for" Code habe Ich nicht gepostet weil der eh nur ein einziger Fehler war. (-:

Verfasst: Donnerstag 27. August 2009, 23:41
von problembär
Ich schreib' Dir hier kein Skript, aber wenn Du die Anzahl der Leerzeichen brauchst, solltest Du sie speichern.

Gruß

Verfasst: Donnerstag 27. August 2009, 23:55
von cofi
Wenn du das wirklich so etwas verwenden willst, solltest du dir [mod]csv[/mod] anschauen.

Wenn du nur herumspielen willst, solltest du ueber eine richtige Datenstruktur nachdenken, oder dein Problem genauer beschreiben, wie deine Faelle aussehen sollen usw.

Wenn du nur deine Reihen zurueckhaben willst (die du vorher auseinandergerissen hast), duerfte das funktionieren:

Code: Alles auswählen

import itertools
def flatten(nested_list):
    return [itertools.chain(*nest) for nest in nested_list]

def write_flat(nested_list, fname):
    with open(fname, "w") as fobj:
        for row in flatten(nested_list):
            fobj.write(" ".join(row))
            fobj.write("\n")

Re: "Daten" Liste in Datei schreiben?

Verfasst: Freitag 28. August 2009, 11:41
von Hyperion
krisi12345 hat geschrieben: Ich habe eine Art Datenbank Datei in der die verschiedenen "Werte" durch verschieden lange Leerstellen geteilt sind:
Hier stellt sich mir sofort die Frage: Woher kommen diese Daten? Erzeugst Du die vorher selber? Kannst Du das Format beeinflussen?

Wenn ja solltest Du lieber auf ein leichter lesbares Format umsteigen...