[英]How to rewrite one line in a text file? Python 3.7
我正在嘗試制作一個相對簡單的游戲,將所有數據保存到 .txt 文件中。 我必須存儲帳戶數據的文本文件使用一種簡單的格式,如下所示:
Username
PIN
Balance
--
Username
PIN
Balance
--
等等等等。
我想要做的只是改變余額值。 目前,我看到的唯一方法是將每一行添加到列表中,更改余額值,然后將所有行一一重寫回文本文件。
有沒有更簡單的方法來做到這一點? 如果是這樣,如何?
這顯然是一個非常簡單的文件結構,因此它有它的局限性。 在您擁有數萬行以上之前,您可能不會注意到任何性能問題。 正如評論中所說,在那之后你需要一個更好的工具。
如果您繼續使用此方法,您實際上不需要加載所有內容,並在更新值后將其保存回磁盤。
您可以流式讀取文件並同時寫回臨時文件。 一旦遇到需要更新的組,當然需要更新余額值。 完成更新后,您可以刪除舊文件並使用實際文件重命名臨時文件。
with open('input.txt') as original, open('output.txt', 'w') as target:
while True:
label1 = original.readline()
pin = original.readline()
label2 = original.readline()
balance = original.readline()
if pin.strip('\n') == 'PIN':
balance = 'new-balance\n'
target.writelines([label1, pin, label2, balance])
if not balance:
break
# Delete original and rename new file.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.