"Daten" Liste in Datei schreiben?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
krisi12345
User
Beiträge: 205
Registriert: Mittwoch 4. März 2009, 16:56
Wohnort: Das schöne München
Kontaktdaten:

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. (-:
[url=http://www.pc-tutos.de/Tutorials/Tutorials.htm]Wie verändert man Spiele oder Computer nach Wunsch? www.PC-Tutos.de[/url]
problembär

Ich schreib' Dir hier kein Skript, aber wenn Du die Anzahl der Leerzeichen brauchst, solltest Du sie speichern.

Gruß
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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")
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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...
Antworten