3 回答

TA貢獻2080條經驗 獲得超4個贊
要簡單地附加一個條目,您不需要打開文件兩次,因為您可以在r+模式下打開。這將讓你閱讀和寫作。rmode 將文件指針放在文件的開頭而不是結尾。當你打開文件時,你應該使用一個with語句來自動關閉文件,即使發生錯誤:
with open('Dice Game.txt', 'r+') as file:
data = [line.strip() for line in file]
print(winner, file=file)
data.append(winner)
賦值給的理解將data文件指針移到最后。然后print語句寫到最后。
對數據進行排序是完全獨立的蠕蟲。您必須拆分數據并按分數的數值進行排序。然后你將不得不重寫整個文件。雖然您可以通過一次打開來完成此操作,但在您的原始示例中打開兩次可能會更容易:
fname = 'Dice Game.txt'
with open(fname, 'r') as file:
data = [int(score), name.rstrip() for score, name in (line.split('=', 1) for line in file)]
data.sort()
with open(fname, 'w') as file:
file.writelines(f'{score}={name}\n' for score, name in data)

TA貢獻1804條經驗 獲得超2個贊
讓我們存儲文件中的內容。
lines = []
for line in file:
winner = line.strip() # something like '30=Jim'
score, name = winner.split('=') # => '30', 'Jim'
# now store that information for later
lines.append((int(score), name)) # we're putting (30, 'Jim') in lines
# lines contains [(30, 'Jim'), (20, 'Amy'), (60, 'Susan'), ...]
print(lines)
您現在可以使用您在網上找到的一種方法進行排序lines嗎?
添加回答
舉報