繁体   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