python会自动保存吗_在Python中:如何在dict更改后自动保存到文件中?[关闭]

一种选择是在代码中的所有点上执行文件写入,其中

dict

被修改。

另一种方法是与decorator一起使用自定义方法对字典进行任何更改。这看起来像是:

import json

import functools

# decorator to save functions return value to a file.

def decorated_change(func):

@functools.wraps(func)

def wrap(*args, **kwargs):

f = func(*args, **kwargs)

with open('file.txt', 'w') as file:

file.write(json.dumps(f))

return wrap

@decorated_change

def set_dict_entry(dict, key, value):

dict[key] = value

理想情况下,您可以创建自己的dictionary类,并对

设置项

方法如下:

class modified_dict(dict):

@some_decorator

def __setitem__(self, i, y):

super().__setitem__

另外,正如其他人所指出的,你可以干脆放弃所有的装饰:

class modified_dict(dict):

def __setitem__(self, key, value):

super().__setitem__(key, value)

with open('file.txt', 'w') as f:

file.write(json.dumps(f, indent=4, sort_keys=True))

但是如果您计划在其他数据结构上应用这种类型的机制,那么最好与decorator一起遵守DRY原则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值