您能通过输入永久地更改python代码吗?

2024-06-01 01:13:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我还在学习python,目前正在开发一个API(人工个人助理,例如Siri或Cortana)。我想知道是否有办法通过输入来更新代码。例如,如果我有一个列表,那么即使程序已经运行完毕,是否也可以永久地添加一个新项。你知道吗

我读到你必须使用SQLite,这是真的吗?还有别的办法吗?你知道吗


Tags: 代码程序api列表sqlite人工办法siri
2条回答

你好,J Nowak

我认为您要做的是将输入数据保存到一个文件(例如txt文件)。 您可以查看下面的链接,它将向您展示如何读写文本文件。你知道吗

How to read and write to text file in Python

有许多方法可以使数据持久化。 这取决于任务、环境等。 举几个例子:

  • 文件(JSON、DBM、Pickle)
  • NoSQL数据库(Redis、MongoDB等)
  • SQL数据库(无服务器和客户机服务器:sqlite、MySQL、PostgreSQL等)

最简单/基本的方法是使用文件。 甚至还有一些模块允许透明地执行此操作。 你只是一如既往地处理你的数据。你知道吗

例如参见shelve。你知道吗

根据文件:

A “shelf” is a persistent, dictionary-like object. The difference with “dbm” databases is that the values (not the keys!) in a shelf can be essentially arbitrary Python objects — anything that the pickle module can handle. This includes most class instances, recursive data types, and objects containing lots of shared sub-objects. The keys are ordinary strings.

用法示例:

import shelve

s = shelve.open('test_shelf.db')
try:
    s['key1'] = { 'int': 10, 'float':9.5, 'string':'Sample data' }
finally:
    s.close()

你正常地使用s,因为它只是一个普通的字典。 它会自动保存在磁盘上(在本例中是文件test_shelf.db)。你知道吗

在这种情况下,你的字典是持久的 并且在程序重新启动后不会丢失其值。你知道吗

更多信息:

另一个选择是使用pickle,它可以提供持久性 同样,但不是神奇的:你需要自己读写数据。你知道吗

比较shelvepickle

相关问题 更多 >