如何修改外部列表?

时间:2016-05-25 06:04:58

标签: python python-3.5

我试图在python中编写这个东西,我遇到了障碍。我有这个列表,我想修改它,并在程序退出后保留更改。我不知道从哪里开始。

基本上,我想要一个可以访问和修改的列表,并且会在使用它的东西关闭后保存并不会重置。

编辑:这是我的想法;我有一个列表,让我们称它为篮子。 我想编写一个程序来添加和删除'篮子,并在关闭程序后保留更改。希望澄清......我尝试使用全局,但这很有趣,所以我基本上删除了那个版本。

3 个答案:

答案 0 :(得分:2)

您可以使用json,pickle或任何类似的库将数据写入文件并将其读回并存储在列表中。这将在当前工作目录中创建文件save.json,其中包含有关列表的json信息。你会注意到你的列表将始终包含你之前添加的数字,它不会忘记"您添加到列表中的内容,因为它已保存在文件中。

import os
import json

foo = [1,2,5,9] #default

#if safe file exists, load its contents into foo list
if os.path.isfile("save.json"): 
    with open("save.json", "r") as file:
        foo = json.loads(file.read())

foo.append(int(input("Enter a number to add to foo")))
print(foo)

#write foo list to file
with open("save.json", "w") as file: 
    file.write(json.dumps(foo))

答案 1 :(得分:0)

这可以通过外部文件来实现。

只需将列表写入文件,稍后可以检索此信息,将其作为列表进行操作,然后覆盖。

据我所知,没有其他持久存储方式。

答案 2 :(得分:0)

这是一个让你在普通python中开始的例子。该示例包括将列表保存到文件的方法以及从文件中读取的方法。由于您没有提供任何已经尝试过的代码,因此您的工作就是以您需要的方式完成这项工作。

#saving a list to a file
items = ['apple', 'pear', 'grape']


file = open('C:\PythonTest\somefile.txt', 'w+')
for item in items:
    file.write('%s\n' % item)

file.close()


#reading a list from a file
items = []
with open('C:\PythonTest\somefile.txt') as reader:
    for line in reader:
        items.append(line.rstrip("\r\n"))
print(items)