Seite 1 von 1
Text Datei sortieren
Verfasst: Freitag 10. November 2017, 14:23
von dchingi
Hallo,
ich würde gerne Textdatei, die aus mehreren Strings besteht alphabetisch ordnen. Meine Idee war, die Strings in einer Liste zu speichern und dann einfach mit "sort" sortieren. Klappt nur leider nicht. Mit wird die Liste unverändert zurück gegeben. Kann mir jemand helfen? Hier ist mein Code:
Code: Alles auswählen
f = open(r"C:\3Python\namen.txt")
x = []
for i in f:
x.append(i)
print(sorted(x))
Re: Text Datei sortieren
Verfasst: Freitag 10. November 2017, 14:40
von Sirius3
@dchingi: `f` ist ein zu kurzer Name für ein Dateiobjekt, mit `i` werden üblicherweise ganze Zahlen verbunden, `x` ist zu generisch; Dateien öffnet man mit dem `with`-Konstrukt, damit sie auch wieder automatisch geschlossen werden. C:\3Python ist ein ungewöhlicher Verzeichnisname und hoffentlich nicht das Verzeichnis, in dem Deine Python-Installation liegt. Die sollte man nämlich nicht verändern, in dem man da eigene Dateien ablegt.
`sorted` liefert eine neue sortierte Liste zurück. Es ist also kein Wunder, dass die ursprüngliche Liste unverändert bleibt.
Code: Alles auswählen
with open("C:/3Python/namen.txt") as lines:
names = list(lines)
names.sort()
print(names)
Re: Text Datei sortieren
Verfasst: Freitag 10. November 2017, 15:03
von dchingi
Vielen Dank für deine schnelle Antwort und deine Ratschläge. Keine Sorge, es ist in einem anderen Verzeichnis gespeichert. Nur leider wird auch bei deinem Code die Liste nicht sortiert. Hast du noch eine Idee?
Re: Text Datei sortieren
Verfasst: Freitag 10. November 2017, 15:39
von Sirius3
@dchingi: zeig doch mal den Inhalt der Datei.
Re: Text Datei sortieren
Verfasst: Freitag 10. November 2017, 16:07
von /me
dchingi hat geschrieben:Nur leider wird auch bei deinem Code die Liste nicht sortiert.
Doch, wird sie. Bist du sicher, dass du das korrekte Python-Programm mit der korrekten Python-Umgebung aufrufst?
Re: Text Datei sortieren
Verfasst: Montag 20. November 2017, 09:41
von dchingi
Es hat funktioniert. Vielen Dank.
