猿问

如何关闭使用ast.literal_eval打开它们的文件?

我的程序使用了很多外部文件。大多数情况下,这些文件只包含一个字典。目前我正在打开这样的文件:

userdata = ast.literal_eval(open("./users.txt", "r").read())

这会将字典保存到变量用户数据中。现在我可以稍微改变一下值,然后像这样写回字典:

open("./users.txt", "w").write(str(userdata))

显然,我无法关闭文件,因为userdata不是文件对象,而只是字典。如何关闭这些文件或它们是否自闭?userdata.close

该文件可以总结为仅包含以下字符串:(实际上会有多个用户和多个键){'name' : 'User1', 'money' : 50}


侃侃无极
浏览 99回答 1
1回答

qq_遁去的一_1

使用上下文管理器功能打开文件,关键字。这可确保在上下文管理器的作用域结束时始终关闭文件。with使用以下命令读取它:with open("./users.txt", "r") as f:     userdata = ast.literal_eval(f.read())并使用以下方法编写它:with open("./users.txt", "w") as f:     f.write(str(userdata))
随时随地看视频慕课网APP

相关分类

Python
我要回答