我試圖製作一個stats.txt
文件,我可以在其中存儲wins
,draws
和losses
。到目前爲止,我能夠檢索這些值並在程序運行時對其進行修改的唯一方法是,使用.readlines()
打開它們,然後將它們作爲列表中的整數(如下所示)分配給一個變量。將列表中的整數轉換爲要寫入文本文件的字符串,並稍後檢索
我的問題是,我似乎無法找到一種方式將它們寫回到文本文件,因爲它們是以列表形式。任何人都可以將我指向正確的方向嗎?
文本文件的格式如下:
0\n
0\n
0\n
閒來無事寫在它的其他的三個0的,其次是enter.
我的代碼如下:
stats = open("C:/Users/JawshBawx/Documents/LiClipse Workspace/RPScLSp/RPScLSp_Src/Stats.txt","r")
lines = stats.readlines()
wins = list(int(val) for val in lines[0].split())
draws = list(int(val) for val in lines[1].split())
losses = list(int(val) for val in lines[2].split())
如果我指定這些沒有list,
輸出變成:generator object <genexpr> at 0x0000011CEF216CA8
打印時,我不能用+1修改值。
if result == 0:
print("Draw!")
draws = [x + 1 for x in draws]
elif result == 1:
print(ai_var+" Wins!")
losses = [x + 1 for x in losses]
elif result == 2:
print(ai_var+" Wins!")
losses = [x + 1 for x in losses]
elif result == 3:
print(user_var+" Wins!")
wins = [x + 1 for x in wins]
else:
print(user_var+" Wins!")
wins = [x + 1 for x in wins]
print(wins)
print(draws)
print(losses)
stats.close
with open("C:/Users/JawshBawx/Documents/LiClipse Workspace/RPScLSp/RPScLSp_Src/Stats.txt","w") as f:
f.write(wins)
f.write(draws)
f.write(losses)
我的結果是:
TypeError: write() argument must be str, not list
我不能得到這個轉換爲字符串,並且它會以相同的格式進行檢索,因爲我需要它是這樣一種方式寫在每次程序運行時都能夠處理我。
我寧願只是將文本文件中的值作爲整數導入,修改它們,然後將它們寫成整數,但是我還沒有找到辦法做到這一點。我知道必須有更好的方法來做到這一點。
注:'[INT(VAL)的VAL在行[0] .split()] '不需要'list'。 – Evert
'stats.close'不關閉文件,你需要調用'stats.close()' –
或者使用'with'語句來讀取。你只對文件執行'readlines()',之後你不需要這個文件並關閉它。 – Evert