对于那些知道的人来说,简单的问题对我来说很难,因为我认为这实际上是不可能的。
制作一个简单的python程序后,就可以在电脑的命令提示符下运行了。
我想知道或者是否可以允许以这种方式运行它的人将元素添加到列表(list.insert)并在下次运行程序时让它仍然存在?(从而将预定义列表编辑为新的列出并以这种方式保存)
编辑:只是提供更多信息:
该程序所要做的就是允许您选择一个列表。从这个列表中它返回一个随机项目。我只是希望在运行程序时允许将项目添加到此列表中,然后保持列表更新。
对于那些知道的人来说,简单的问题对我来说很难,因为我认为这实际上是不可能的。
制作一个简单的python程序后,就可以在电脑的命令提示符下运行了。
我想知道或者是否可以允许以这种方式运行它的人将元素添加到列表(list.insert)并在下次运行程序时让它仍然存在?(从而将预定义列表编辑为新的列出并以这种方式保存)
编辑:只是提供更多信息:
该程序所要做的就是允许您选择一个列表。从这个列表中它返回一个随机项目。我只是希望在运行程序时允许将项目添加到此列表中,然后保持列表更新。
最基本的方法是使用 Pickle 模块将数据保存并加载到磁盘:
http://docs.python.org/2/library/pickle.html
http://docs.python.org/2/library/pickle.html#example
这是我将如何在一个简单的程序中使用它
try:
import cPickle as pickle
except ImportError:
import pickle
class MyClass(object):
def __init__(self, file_name):
self.array = []
self.file_name = file_name
self.load_data()
def add_element(self, element):
self.array.append(element)
self.save_data()
def load_data(self):
try:
with open(self.file_name, "r") as f:
self.array = pickle.load(f)
except IOError:
pass
def save_data(self):
with open(self.file_name, "w") as f:
pickle.dump(self.array, f)
def main():
FILE_NAME = "test.pkl"
a = MyClass(FILE_NAME)
print "elements in array are", a.array
for i in range(5):
a.add_element(i)
if __name__ == "__main__":
main()