簡體   English   中英

如何重寫文本文件中的一行? 蟒蛇 3.7

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM