Python中的保存/加载功能
Posted
技术标签:
【中文标题】Python中的保存/加载功能【英文标题】:Save/load function in Python 【发布时间】:2015-10-19 07:40:09 【问题描述】:我必须创建一个保存函数和一个加载函数,以以下格式保存字典:
123;Kalle;
123;Maria;
321;Anna;
321;Olle;
我的字典应该看起来像一个电话簿,键是名字,值是电话号码:
telebook = "jacob":"8472923777", "nisse":"092563243"
如何编写一个函数以上述格式保存我的电话簿?它应该是这样的:
8472923777;jacob;
这是我当前的代码:
def save(lista, telebook):
import pickle
filename = lista[1]
f = open(filename, "w")
pickle.dump(telebook, f)
f.close()
print telebook
def load(lista, telebook):
import pickle
try:
filename = lista[1]
f = open(filename, "r")
telebook_1 = pickle.load( f )
telebook.clear()
telebook.update(telebook_1)
f.close()
print telebook
except:
print "This file doesn't exist"
编辑:
我的保存功能比我想象的要容易,我自己设法解决了。不知道如何让加载功能工作。
book = raw_input("telebook> ").lower()
lista = book.split()
def save(lista, telebook):
filename = lista[1]
f = open(filename, "w")
for name, num in telebook.items():
f.write(num+";"+name+";"+"\n")
f.close()
print telebook
我的负载和以前一样,但显然我不能再使用那个了。
【问题讨论】:
这不是代码编写服务。展示您的尝试并告诉我们您遇到的问题 我们不会为您编写代码......我们会帮助您编写“您的代码” 抱歉,将使用当前代码进行编辑。 你为什么使用pickle
?有什么特别的原因吗?
您考虑过与your classmate 交谈吗?
【参考方案1】:
def save(telebok, filepath):
with open(filepath, 'w') as outfile:
for name,num in telebok.items():
outfile.write(";;\n".format(num, name))
然后把它拿回来:
import csv
def load(filepath):
with open(filepath) as infile:
telebok = dict((v,k) for v,k,_ in csv.reader(infile, delimiter=';'))
return telebok
【讨论】:
感谢您的帮助,尽管我使用了您为其他人提供的帮助进行类似练习,但没有导入 csv。以上是关于Python中的保存/加载功能的主要内容,如果未能解决你的问题,请参考以下文章
使用 python 3.6 将多个文件并行加载到内存中的最佳方法是啥?
无需借助 csv 文件即可保存和加载复杂的 python 字典