如何制作 Python 程序,以便即使在终止后,变量、列表和其他对象的值也不会重置?
Posted
技术标签:
【中文标题】如何制作 Python 程序,以便即使在终止后,变量、列表和其他对象的值也不会重置?【英文标题】:How can I make a Python program so that even after termination, the variable, list and other objects' values do not reset? 【发布时间】:2020-06-09 02:53:11 【问题描述】:例如,
x = 0
for i in range(5):
x += 1
print(x)
在这里,我希望 x 的值在程序终止后保持为 5,而不是重置为 0,就像普通应用程序对您的设置、个人信息等所做的那样。
【问题讨论】:
但是当你再次运行它时,你立即设置了x = 0
,那你怎么知道呢?也许reading through this 会有所帮助。
@MarkMeyer 你说得有道理.. 谢谢!
普通应用程序不是这样工作的,它们使用某种形式的数据持久性。这可以是任何简单的东西,例如您读取以加载值的文本文件或一个成熟的数据库及其他
【参考方案1】:
程序终止后,内存中的所有内容都会消失。永久保存数据的最简单方法是将其写入文件,您可以在此处阅读:https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
例如:
try:
with open("save.txt") as save:
x = int(save.read())
except FileNotFoundError:
print("No save file found, starting at 0")
x = 0
for i in range(5):
x += 1
print(x)
with open("save.txt", "w") as save:
save.write(str(x))
【讨论】:
【参考方案2】:使用数据库!您可以尝试将数据存储在 MongoDB 等数据库中。您可以做的另一件事是创建@Samwise 提到的本地文件。
但是使用数据库可能会更好,因为如果您不熟悉数据库,它将有助于学习如何使用它。您可以尝试使用 MongoDB 与 pymongo
编辑
扩展@Samwise 的答案。您可能希望在本地文件中存储多个值。为此,请尝试创建 JSON 或 YAML 文件。对于 JSON 文件,您可以使用标准的 json
库,对于 YAML,您可以在 PyPI 上搜索一个
【讨论】:
以上是关于如何制作 Python 程序,以便即使在终止后,变量、列表和其他对象的值也不会重置?的主要内容,如果未能解决你的问题,请参考以下文章
即使应用程序处于终止状态或被杀死,如何在 iOS 中获取位置更新? [复制]