我目前陷入儲蓄問題。我想為游戲創建關卡,我想在 pygame 程式中構建和修改它們,然后將它們以字串的形式保存在 .txt 檔案中。現在,我設法打開了一個名為“level_n.txt”的現有檔案,洗掉了我要覆寫的舊關卡,并將新關卡矩陣寫入文本檔案中。此時,一切正常。如果我修改文本檔案,關閉它,在同一程式運行中重新打開它,然后列印關卡,則保存更改。
這是我的問題:當我關閉整個程式并重新打開它時,關卡沒有更改,當我手動打開關卡的文本檔案時,更改也不在這里。
所以從我的角度來看,它看起來像 python 在 RAM 中創建檔案的副本,覆寫它,使用它,但是當它關??閉時,文本檔案不會保存。
我已經包含了我撰寫文本的部分,以及一個級別示例以防萬一。(我嘗試使用 w、w 、r 、a 撰寫文本,這些都不能解決我的問題)
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
Python 3.8,視窗 10
uj5u.com熱心網友回復:
使用檔案的完整路徑而不是檔案名,它應該可以正常作業例如:
with open(r'E:\Project\level' str(n 3) '.txt', 'w ') as f:
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415355.html
標籤:
