-7

假设我想添加一些东西

list = []

这样 list 的值在它自己的代码中得到更新。在运行时:列表被修改为

list =['hello','Dude']

我该怎么做?

我的意思是,对 .py 文件中的 List 值进行了真正的更改。

4

3 回答 3

2

从您对其他答案的评论来看,您正在寻找一种将对象序列化并将其保存到文件的方法,以便在重新运行程序后重新加载它。这是使用pickle.

可以在堆栈溢出中找到一个示例:如何在 Python 中保存对象

import pickle

try:
    with open('list.pk', 'rb') as input:
        list = pickle.load(input)
except:
    list = []

list.append('something')
print(list)

with open('list.pk', 'wb') as output:
    pickle.dump(list, output, pickle.HIGHEST_PROTOCOL)
于 2013-08-30T10:21:03.440 回答
2

只需在需要的地方使用 append :

list = []
list.append('hello')
print list
list.append('Dude')
print list

输出:

['hello']
['hello', 'Dude']<

简单的方法是创建额外的文件并在那里存储变量。

代码:

list = []
f = open("list.txt", "r+")
for item in f:
    list.append(str(item).rstrip())

f.write("Something")
f.close()

列表.txt:

hello
Dude

执行后的list.txt:

hello
Dude
Something
于 2013-08-30T10:11:08.280 回答
1

唯一的方法是重写.py文件。

即使在技术上确实可行,您也不会真的想这样做。

相反,您应该将数据保存在单独的文件中,在启动程序时加载并在退出时保存。

有一些特殊的模块用于存储 python 值,例如shelve

一个非常常见的替代方法是以一种格式存储数据,这种格式甚至可以被其他语言而不是 python 对象理解,例如在像sqlite这样的关系数据库中。

于 2013-08-30T10:18:41.110 回答