我在向文件写入字典后,目前正在正确显示文件时出现问题。对于此程序,输入文件需要具有以下格式: ID:日期:Dayskept:ProductName,例如1:12/12/2011:12:A
这是我第一次将示例文件读入字典时很好,但是一旦我将字典保存到新文件并尝试打开此文件,我得到输出: 1:“日期”:12/12/2011,“生命”:12,“名称”:A
在将字典中的数据写入文件之前,是否有一种简单的方法可以对其进行格式化? 感谢您给出的任何建议
def loadProduct(fileName):
global cheeseDictionary
f = open(fileName,"r")
line = f.readline() # Reads line from file
while line:
line = line[:-1]
data = split(line,":") # Splits line when there is a colon
cheeseDictionary[data[0]] = {"date":data[1], "life":data[2], "name":data[3]} # Stores each split item
line = f.readline() # Next line
f.close()
print cheeseDictionary
def saveProduct(fileName):
global cheeseDictionary
f = open(fileName,"w")
pickle.dump(cheeseDictionary, f)
f.close()
答案 0 :(得分:1)
由于您具有所需的特定格式,因此您需要编写代码来发出该格式。 (我不知道你在那里尝试用pickle
做什么,这会产生一种二进制格式,与你说的内容没有任何相似之处。)
例如,您可以像这样重新定义saveProduct
:
def saveProduct(fileName, cheeseDictionary):
f = open(fileName, "w")
for i in sorted(cheeseDictionary.keys()):
v = cheeseDictionary[i]
f.write("%s:%s:%s:%s\n" % (i, v["date"], v["life"], v["name"]))