Seite 1 von 1

Von Liste in Datei schreiben

Verfasst: Sonntag 9. Januar 2005, 20:24
von Gunnar
Also,
da mein anderer Thread nur so vor Verzweiflung strotzt und sehr wirr geschrieben ist, frage ich hier mal ganz simpel eine Sache :lol:

Wie kann ich von einer Liste , die andere Listen enthält, in eine Datei schreiben. Dort will ich dann zwischen den einzelnen Daten auch Leerzeichen und am gewünschenten Zeilenende Zeilenumbrüche setzen.

Kann mir jemand den Vorgang grob schildern ?

Danke...
Gunnar

Verfasst: Sonntag 9. Januar 2005, 21:48
von Dookie
Hi Gunnar,

wo is das Problem?

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: UTF-8 -*-


def write_list(f, the_list, split_ch=" "):
    for record in the_list: # write records to file
        line = split_ch.join(record)+"\n" # create line
        f.write(line)
    
def read_list(f, split_ch=" "):
    res = [] #result
    for line in f: # read line by line
        record = line.strip().split(split_ch) # split line to record
        res.append(record)
    return res


if __name__ == "__main__":
    import os
    fname = "test.dat"
    if os.path.exists(fname):
        my_file = file(fname, 'r')
        my_list = read_list(my_file)
        my_file.close()
        print my_list
    else:
        my_list = [["123", "test", "567"],
                   ["231", "foo", "890"],
                   ["312", "bar", "999"]]
        my_file = file(fname, 'w')
        write_list(my_file, my_list)
        my_file.close()
        print "liste gespeichert!"
Gruß

Dookie

Verfasst: Montag 10. Januar 2005, 08:44
von Gast
Das Problem liegt darin, daß du keine groben Vorgänge schildern kannst :lol:

Im Ernst, danke für die detaillierte Antwort.

Mfg Gunnar

Verfasst: Montag 10. Januar 2005, 14:30
von Leonidas
Anonymous hat geschrieben:Das Problem liegt darin, daß du keine groben Vorgänge schildern kannst :lol:
Sprich jetzt macht selbscoden keine Spaß mehr? Aber du kannst versuchen es noch zu optimieren, oder gar das ganze als neuen List Datentyp auflegen.. oder es als 1 zeiliges lambda, map(), filter() reduce() Konstrukt machen *g*