Ich habe ein Problem beim Sortieren einer großen Textdatei. Die Textdatei sieht wie folgt aus:Wie sortiere ich eine Textdatei basierend auf dem String-Wert der letzten Spalte mit Python?
word, two words, 15, 988, anotherword, 99
also some words, nope, 20, 122, characters, 39
text, words words, 10, 300, more words, 9
Das Ende jeder Zeile ein Zeilenende-Zeichen aufweist (\ n).
Ich würde diese Datei absteigend sortieren, basierend auf der Ganzzahl in der letzten Spalte.
habe ich den folgenden Code, den ich hier auf Stackoverflow gefunden:
from operator import itemgetter
with open ('sourcefile.txt') as fin:
lines = [line.split(',') for line in fin]
lines.sort(key=itemgetter(5),reverse=True)
with open('sortedfile.txt', 'w') as fout:
for el in lines:
fout.write('{0}\n'.format(','.join(el)))
Das Problem, das ich bin mit dieser Lösung bekommen, ist, dass das Skript in alphabetischer Reihenfolge ist die Sortierung. Wie so:
word, two words, 15, 988, anotherword, 99
text, words words, 10, 300, more words, 9
also some words, nope, 20, 122, characters, 39
Was könnte eine praktische Lösung für dieses Problem sein?
arbeitete Diese wie ein Zauber. Ich brauchte eine Weile, um zu verstehen, was du getan hast, aber ich denke, ich tue es jetzt! Vielen Dank. –
@DavidDeSmedt Statt "Danke" -Kommentare zu schreiben, akzeptieren Sie die Antwort, indem Sie auf das graue Häkchen-Symbol links davon klicken. Auf der [help] oder der kleinen [tour] Seite erfahren Sie mehr darüber, wie diese Seite funktioniert. –