У меня есть программа, которая записывает highscore
пользователя в текстовый файл. Файл назван пользователем, когда они выбирают playername
.Запись в новый файл, если он не существует, и добавление к файлу, если он
Если файл с указанным именем пользователя уже существует, программа должна быть добавлена в файл (чтобы вы могли видеть более одного highscore
). И если файл с этим именем пользователя не существует (например, если пользователь является новым), он должен создать новый файл и записать его.
Вот соответствующий, до сих пор не работает, код:
try:
with open(player): #player is the varible storing the username input
with open(player, 'a') as highscore:
highscore.write("Username:", player)
except IOError:
with open(player + ".txt", 'w') as highscore:
highscore.write("Username:", player)
Приведенный выше код создает новый файл, если он не существует, и пишет к нему. Если он существует, при проверке файла ничего не было добавлено, и я не получаю ошибок.
Какова цель первого 'with open (player):' statement? Кроме того, в вашем обработчике исключений вы создаете другой файл 'player + '.txt'', чем вы пытались писать в первую очередь. –
@MarkkuK Я взял это из другого вопроса в stackoverflow, где вы проверяете, существует ли файл. Таким образом, с open (player): проверяет, существует ли файл, по крайней мере, так я думал. Okey, я вижу, просто подумал, что мне нужно использовать «.txt», чтобы файл был текстовым файлом. – Bondenn
в любом случае, вы можете просто использовать 'open (whatever, 'a') в качестве рекорда:', и он будет делать то, что вы хотите: создать файл, если он не существует, или добавить к нему, если он существует –