我一直在嘗試通過讓用戶輸入他們的姓名首字母并將他們的分數保存到一個檔案中來為游戲添加一個保存功能,這樣就可以加載他們以前的內容。一開始它會詢問他們的姓名首字母并將其保存到一個檔案中,然后我想將該檔案復制到一個串列中以便可以編輯分數,但是該串列不包括最近的姓名首字母并且分數添加了檔案. 我不知道問題出在哪里,所以我添加了我所做的檔案。
Names.write('~~~')
Names.write('\n')
Names.write(username_score)
Names.write('\n')
line = Names.readlines()
print(line)
with open('Names.txt','r ') as Names:
for line_number, data in enumerate(Names, start=1):
if username in data:
print(f"Word '{username}' found on line {line_number}")
break
print('data',data)
print('line',line)
line.pop(1)
line.insert(1, username_score)
print('line 2',line)
for i in range(len(line)):
Names.write(line[i])
uj5u.com熱心網友回復:
我認為這是因為在您的第一個代碼塊中,您嘗試寫入然后讀取檔案而不關閉并重新打開檔案。該line = Names.readlines()行應該在第二個代碼塊中,如下所示:
username_score = '200'
username = 'foo'
with open('Names.txt','w ') as Names:
Names.write('~~~')
Names.write('\n')
Names.write(username_score)
Names.write('\n')
line = Names.readlines()
print(line)
with open('Names.txt','r ') as Names:
line = Names.readlines()
print(line)
for line_number, data in enumerate(line, start=0):
if username in data:
print(f"Word '{username}' found on line {line_number}")
break
print('data',data)
print('line',line)
line.pop(1)
line.insert(1, username_score)
print('line 2',line)
for i in range(len(line)):
Names.write(line[i])
這個完整的示例應該很容易集成到您的代碼中,如果您有任何問題,請發表評論。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/407312.html
標籤:
