【问题标题】:How to append or change data within a file如何在文件中追加或更改数据
【发布时间】:2014-04-23 04:03:55
【问题描述】:

你好,我已经做了一个程序来存储玩家的名字和力量..这里是代码:

data = {
    "PLAYER":name2,
    "STRENGTH":str(round(strength, 2)),

}


with open("data2.txt", "w", encoding="utf-8") as file:
   file.write(repr(data))
file.close()

所以这会存储数据,所以如果我想在某个动作之后追加/更改值,我该怎么办,例如“战斗”

是否有可能得到'STRENGTH'的变量然后改变数字?

目前要从外部文件 'DATA1.txt' 中读取数据,我正在使用此代码:

with open("data1.txt", "r", encoding="utf-8") as file:
   data_string = file.readline()
   data = eval(data_string)
   # (data["STRENGTH"])
   S1 = (float(data["STRENGTH"]))
file.close()

现在我可以对变量做一些事情 --> 'S1'

这里是外部文本文件'data1.txt'

{'PLAYER': 'Oreo', 'STRENGTH': '11.75'}

...但是我想在“战斗”后改变力量值非常感谢

【问题讨论】:

  • 如果您打算使用with 作为上下文管理器,则不需要file.close()。它为你做到了。 Docs

标签: file python-3.x store


【解决方案1】:

也许你不了解 Python dict 语义?

在我看来,您正在做很多不必要的事情,例如 S1 = (float(data['STRENGTH'])),在您可以做非常简单的事情时尝试操纵和更改值。

>>> data = {'PLAYER': 'Oreo', 'STRENGTH': '11.75'}
>>> data['STRENGTH'] = float(data['STRENGTH'])
>>> data
{'PLAYER': 'Oreo', 'STRENGTH': 11.75}
>>> data['STRENGTH'] += 1
>>> data
{'PLAYER': 'Oreo', 'STRENGTH': 12.75}

也许您应该阅读一下Native Data Types -- Dive Into Python 3,看看它是否能解决问题。

【讨论】:

  • 但是您输入的数据不是来自“外部”文件源,例如 .TXT 文件,我需要程序“读取”.TXT 文件并更改 STRENGTH 值。
  • 您可以整天按照您正在做的方式在文本文件中读取和写入字典,或者更好地使用pickle 或之前建议的类似方法。不过,一般来说,您希望在程序运行时(快得多)操作内存中的值,并且只在绝对需要时才从文件中读取或写入。
  • 你能给我写一个示例代码吗?改变“力量”的价值?
  • 这正是我的答案!最后两行显示它从 11.75 变为 12.75 (data['STRENGTH'] += 1)。
  • 我需要使用... 打开 data1.txt,readline()--> 强度更改为新值。 file.close() :)
猜你喜欢
  • 2011-05-22
  • 2015-05-28
  • 1970-01-01
  • 2016-07-14
  • 2016-06-07
  • 2016-03-18
  • 1970-01-01
  • 1970-01-01
  • 2013-01-22
相关资源
最近更新 更多