Ich habe eine Highscore-Datei für ein Minesweeper-Spiel, das ich erstelle und jedes Mal, nachdem es mit den neuen Partituren hängt, will ich es pro Bruchlinie sortieren.Sortieren Textdatei pro Bruchlinie
Ich verwende:
def save_score(score):
name = input("type a name")
file = open("highscores.txt", "a")
file.write("Table: "+str(GRID_TILES)+"x"+str(GRID_TILES)+"\t mode:"+str(Dif)+"\t score:"+str(score)+"\t name:"+str(name)+"\n")
file.close()
, die in diesem Format kommt aus:
table: 10x10 mode: easy score: 7592 name:Test
table: 5x5 mode: medium score: 2707 name:Test
Wie kann ich es machen, so dass nach dem Eintritt der file.write
oder die file.close
es die Datei pro Zeile sortiert?
Ich möchte es nur nach Tabelle sortiert werden. Es spielt keine Rolle in welcher Reihenfolge, solange alle Tabellen, die 7x7 sind, an denen liegen, die auch 7x7 sind.
Ich habe versucht, dies zu tun:
def save_score(score):
name = input("type a name")
file = open("highscores.txt", "a")
file.write("table: "+str(GRID_TILES)+"x"+str(GRID_TILES)+"\t mode: "+str(Dif) +"\t score: "+str(score)+"\t name: "+str(name)+"\n")
file.close()
file = open("scores.txt", "r")
file2 = open("highscores.txt", "w")
file2.writelines(sorted(file, key=lambda line:str(line.split()[0])))
file.close()
file2.close()
Ich möchte meinen Code halten, so kurz wie möglich, da die gesamte Minensuchboot wird schon einige ammount Code aufzunehmen.
Vielleicht können Sie ein Beispiel für Ihre erwartete Ausgabe angeben. – MervS
Es tut mir leid, ich bin nicht in der englischen Sprache geboren, können Sie das weiter erklären? –
Können Sie ein Beispiel zeigen, wie die Datei nach der gewünschten Sortierung aussieht? – MervS