Scheint als wäre der Ansatz gar nicht so verkehrt gewesen - mir kam nur das ständige File auf/ File zu etwas seltsam vor:
Code: Alles auswählen
datei = 'test.txt'
file = open(datei, 'a+')
file.write('3 bla\n')
file.write('7 blubb\n')
file.close()
file = open(datei, 'r')
lines = file.readlines()
file.close()
file = open(datei, 'w')
file.writelines(sorted(lines))
file.close()
Danke - das Realwelt-Problem ist schon gelöst (Shell/Perl) aber ich dachte das wäre mal ein guter Einstieg in Python. Ist auch nur ein kleiner Teil des Ganzen...Gnushi hat geschrieben:Hi!
Falls das ein Realwelt-Problem ist, dann hilft die Shell weiter:
Das ist auch gut - bei mir läufts andersum. Die weiteren Ansätze hinsichtlich der Sortierung sind für mein aktuelles Problem oversized - die Zahlen zu Beginn einer Zeile haben in weiser Voraussicht alle die gleiche Länge bekommen - also mit führenden Nullen Der Rest danach würde nur bei gleicher Zahl relevant werden und spielt dann keine Rolle. Aber es ist nur eine Frage der Zeit bis was anderes kommt und deshalb habe ich mir die High-End Lösung auch mal gesichertnoise hat geschrieben:`result` enthält dann das von dir gewünschte Ergebnis.Code: Alles auswählen
f = open("test.txt", "r") result = sorted(list(f) + ["2 text...", "7 text..."]) f.close()
Das ist mir im Grunde klar, das viele hin und her kam mir aber trotzdem seltsam vor. Hat das Schreiben via FOR Schleife Vorteile gegenüber file.writelines?gerold hat geschrieben: Und was das gleichzeitige Lesen und Bearbeiten einer Textdatei betrifft -- mache es erst dann, wenn du genau weißt was du tust. Es ist nämlich so, dass du nicht einfach in der Mitte einer Datei etwas hinzufügen kannst. Du kannst etwas austauschen, aber nur so lange du damit die Größe der Datei nicht änderst.
Als blutiger Anfänger habe ich hier und da noch das Gefühl dass ich mit Perl schneller ans Ziel komme. Aber bei der Rückendeckung hier beisse ich mich noch mal eine Weile durch. Seid selbst schuld, jetzt bin bestimmt bald mit der nächsten Frage wieder hier