当我将项目添加到列表list.append()
或list.insert()
或任何其他方法时,当我加载文件时,我添加到列表中的项目不存在。另外我想在另一个文件中列出这个列表以防它有任何区别。
代码:
User = ["pig"]
Pass = ["ham"]
User.insert(len(User)+1, "cow")
Pass.append("beef")
我知道如何从其他文件中获取内容。
答案 0 :(得分:1)
try: #load list from file if it (the file) exists
my_list = json.load(open("my_database.dat"))
except IOError: #otherwise create the list
my_list = []
...
#save list for next time ..
json.dump(my_list,open("my_database.dat","wb"))
是执行此操作的众多方法之一
你也可以使用泡菜
try: #load list from file if it (the file) exists
my_list = pickle.load(open("my_database.dat"))
except IOError: #otherwise create the list
my_list = []
...
#save list for next time ..
pickle.dump(my_list,open("my_database.dat","wb"))
或用ast.literal_eval
做try:
my_list = ast.literal_eval(open("some_file").read())
except IOError:
my_list = []
...
#save list
with open("some_file","wb") as f:
f.write(repr(my_list))
答案 1 :(得分:0)
对于良好开始的运行pickle之间的简单数据持久性:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pickle
def main():
# Load the file if it exists other initialise the list
try:
replicating_cow = pickle.load(open("cows.p", "rb"))
except IOError:
replicating_cow = []
replicating_cow.append('cow') # Add another cow
print replicating_cow # Print the list
pickle.dump(replicating_cow, open("cows.p", "wb")) # Save the list to disk
if __name__ == "__main__":
main()
每次跑步后,我们都会得到一头新牛:
$ python replicate_cow.py
['cow']
$ python replicate_cow.py
['cow', 'cow']
$ python replicate_cow.py
['cow', 'cow', 'cow']
$ python replicate_cow.py
['cow', 'cow', 'cow', 'cow']