Я получил эту функцию:Почему не обновляется файл?
def restapuntos(precio, usuario ,saladondeocurre):
print("Function started")
data = []
with open("listas\estadisticas\Trivial-"+saladondeocurre+".txt", "r+") as f:
for line in f:
data_line = json.loads(line)
if data_line[0] == usuario:
print("User: "+user.name+", removing "+str(precio)+" from "+str(data_line[1]))
data_line[1] = data_line[1]-precio
data.append(data_line)
f.seek(0)
f.writelines(["%s\n" % json.dumps(i) for i in data])
f.truncate()
print("Function has been used")
, который называется с:
Myclass.restapuntos(10, user.name, room.name)
И 3 печатает скажите мне это:
Function started
User: saelyth, removing 10 from 461
Function has been used
Но вот проблема: Файл WASN 't обновлено, оно по-прежнему показывает 461 вместо 451, несмотря на то, что все, кажется, работает нормально, и печать действительно знает, что делать без ошибок, информация в файле по-прежнему такая же, как и для e после запуска кода.
Кто-нибудь знает почему?
Вы пытаетесь выполнить 'f.flush()' в конце? –
Попробуйте изменить 'open (" listas \ estadisticas \ Trivial - "+ ...' to 'open (r" listas \ estadisticas \ Trivial - "+ ...', потому что обратные косые черты обычно являются escape-символами в строках, но 'r 'префикс отключает это. – martineau
все еще такая же проблема, попробовал оба – Saelyth