永久保存数组中的元素

时间:2014-05-09 02:46:53

标签: python python-2.7

我想知道是否有可能做Python中标题中解释的内容。让我更好地解释自己。假设你有一个阵列:

list = []

然后你有一个函数将用户的输入作为字符串并将其附加到数组:

def appendStr(list):
   str = raw_input("Type in a string.")
   list.append(str)

我想知道即使程序关闭后是否可以保存用户在列表中所做的更改。因此,如果用户关闭程序,再次打开它,并打印列表,他/她添加的字符串将出现。感谢您的时间。这可能是一个重复的问题,如果是这样,我很抱歉,但我找不到像Python这样的另一个问题。

3 个答案:

答案 0 :(得分:1)

您必须将其保存到文件中:

写入文件

with open('output.txt', 'w') as f:
    for item in lst:              #note: don't call your variable list as that is a python reserved keyword
        f.write(str(item)+'\n')

从文件中读取(在程序开头)

with open('output.txt') as f:
    lst = f.read().split('\n')

答案 1 :(得分:1)

如果是字符串,按照建议写入文件是一个很好的方法。 但如果元素不是字符串,那么#34;酸洗"可能是您正在寻找的关键字。

文档在这里: https://docs.python.org/2/library/pickle.html

在我看来这篇文章回答了你的问题: Saving and loading multiple objects in pickle file?

答案 2 :(得分:1)

更简单的解决方案是使用json

import json
li = []
def getinput(li):
    li.append(raw_input("Type in a string: "))

要保存列表,您可以执行以下操作

savefile = file("backup.json", "w")
savefile.write(json.dumps(li))

要加载文件,您只需

savefile = open("backup.json")
li = json.loads(savefile.read())

您可能想要处理文件不存在的情况。需要注意的一点是,像类这样的复杂结构不能存储为json。