关闭程序后不保存文本文件

Doesn't save a text file after closing the program

我目前遇到了保存问题。我想为游戏创建关卡,我想在 pygame 程序中构建和 修改 它们,然后将它们以字符串形式保存在 .txt 文件中文件。 现在,我设法打开 一个现有的 文件,名为“level_n.txt”,删除我想覆盖的旧关卡,并在文本文件中写入新的关卡矩阵。

至此,一切正常。

如果我修改文本文件,将其关闭,然后在同一程序 中重新打开它 运行,然后打印关卡,更改已保存。

这是我的问题:当我关闭我的整个程序并重新打开它时,关卡没有改变,而当我手动打开关卡的文本文件时,这里也没有改变。

所以从我的角度来看,看起来 Python 在 RAM 中创建文件的副本,覆盖它,使用它,但是当它关​​闭时,文本文件不会保存。

我已经包含了我编写文本的部分,以及一个关卡示例以防万一。 (我尝试使用 w、w+、r+、a+ 来编写文本,none 这些解决了我的问题)

if event.type == pygame.KEYDOWN: #checks for save
                if event.key == pygame.K_s:
                    with open('level'+str(n+3)+'.txt', 'w+') as f:
                        f.truncate(0)
                        for i in range(0,len(level)):
                            lin = ""
                            for j in range(0,len(level[0])):
                                lin = lin + str(level[i][j][0])+","+str(level[i][j][1]) + "."
                            lin = lin[:-1]+"\n"
                            f.writelines(lin)  
                        
                    with open('level'+str(n+3)+'.txt', 'r') as g:
                        level = [[[int(num[0]),int(num[2])] for num in line.split('.')] for line in g]
                        print(level)
                    print("contents saved ! (maybe)")

里面“level4.txt”

1,3.1,3.1,3.1,3.1,3
1,2.0,0.0,0.0,0.1,2
1,2.0,0.1,1.0,0.1,2
1,2.0,0.0,0.0,0.1,2
1,3.1,3.1,3.1,3.1,3

Python3.8,window10

使用文件的完整路径而不仅仅是文件名,它应该可以正常工作例如:

with open(r'E:\Project\level'+str(n+3)+'.txt', 'w+') as f: