Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何在文件中追加或更改数据_File_Python 3.x_Store - Fatal编程技术网

File 如何在文件中追加或更改数据

File 如何在文件中追加或更改数据,file,python-3.x,store,File,Python 3.x,Store,你好,我制作了一个程序来存储球员的名字和实力。下面是代码: data = { "PLAYER":name2, "STRENGTH":str(round(strength, 2)), } with open("data2.txt", "w", encoding="utf-8") as file: file.write(repr(data)) file.close() 因此,这存储了数据,如果我想在某个动作usch作为“战斗”后追加/更改值,我该怎么办 是否有可能获取“

你好,我制作了一个程序来存储球员的名字和实力。下面是代码:

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

}


with open("data2.txt", "w", encoding="utf-8") as file:
   file.write(repr(data))
file.close()
因此,这存储了数据,如果我想在某个动作usch作为“战斗”后追加/更改值,我该怎么办

是否有可能获取“强度”变量,然后更改数字

目前,要从外部文件“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'}

。。。但是我想在一场“战斗”后更改强度值非常感谢

也许您不理解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}

也许你应该读一读,看看它是否能把事情弄清楚。

如果你要将
一起用作上下文管理器,你不需要
file.close()
。这是为了你。但是,您输入的数据不是来自“外部”文件源,例如.TXT文件,我需要程序来“读取”该.TXT文件并更改强度值。您可以整天完全按照您的方式在文本文件中读写dict,或者更好地使用
pickle
或之前建议的类似方法。不过,一般来说,当程序运行时,您希望操作内存中的值(速度快得多),并且只有在绝对必要时才读取或写入文件。您能给我写一个示例代码吗?改变“力量”的价值?这正是我的答案!最后两行显示它从11.75变为12.75(
data['STRENGTH']+=1
)。。。打开data1.txt后,readline()-->强度将更改为较新的值。file.close():)