У меня проблема, когда функция просто перезаписывает строку, которая уже существует в TXT-файле. Предполагается, что функция должна записывать рекорды в файл, когда игра завершается (я сделал игру змеи, следуя учебнику по youtube). Я не могу понять, почему он не начнется по новой линии, может кто-нибудь объяснить логику этого и как я это исправлю? Я где-то читал, что вместо «w» в f.open() я должен ввести «rb» или что-то еще. Поскольку я немного новичок в этой «записи в файл», мне сложно.Пишите в файл python - Проблема с линией ( n)
Кроме того, я хочу сортировать рекорды от наивысшего до самого низкого в файле (другими словами, сортировать finalScore от самого высокого до самого низкого). Я понятия не имею, как я должен продолжать и кодировать это, поэтому я бы воспользовался некоторой помощью. Видите ли, я хочу, чтобы распечатать текущие рекордами на консоль (для того, чтобы сделать scoreboad)
Heres код:
import random
import time
name = "Andreas"
finalScore = random.randint(1,10)
def scoreToFile(finalScore):
#Has to be generated here, since we need the exact current time
currentTime = time.strftime("%c")
print("Sucsessfully logged score (finalScore) to highscores.txt")
f = open("highscores.txt", "w")
#fileOutput = [(currentTime, ":", name, "-", finalScore)]
fileOutput = [(finalScore, "-", name, currentTime)]
for t in fileOutput:
line = ' '.join(str(x) for x in t)
f.write(line + "\n")
f.close()
scoreToFile(finalScore)
Любом, Рождеством мой товарищ питона выродков! : D
Do 'f = open (" highscores.txt ", 'a')'. Обратите внимание на флаг '' ', что означает« добавить », а не« перезаписать »] (http://stackoverflow.com/q/1466000/198633). – inspectorG4dget