我得到这个功能:为什么不更新文件?
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没有更新,它仍然显示461而不是451,尽管这一切都似乎工作正常,并且打印实际上知道该怎么做没有错误,但该文件中的信息仍然与befor e在我运行代码之后。
任何人都知道为什么?
你有没有在最后尝试'f.flush()'? –
尝试更改'open(“listas \ estadisticas \ Trivial - ”+ ...'到'open(r“listas \ estadisticas \ Trivial - ”+ ...'因为反斜杠通常是字符串中的转义字符,但'r '前缀关闭。 – martineau
仍然是相同的问题,都尝试过 – Saelyth