关闭程序后不保存文本文件
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:
我目前遇到了保存问题。我想为游戏创建关卡,我想在 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: