如何制作 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 中获取位置更新? [复制]

即使在终止应用程序后,我们还能获取位置信息吗? [关闭]

即使在操作系统终止应用程序后,Android 活动仍保留在堆栈中

即使在应用程序终止后也能获得 Apple 的远程推送通知

即使应用程序终止,iOS 9 如何获取位置

Ccurses程序结束后如何使屏幕恢复正常