2011-03-27 41 views
0

我目前有问题,一旦我写了一个字典到文件正确显示文件。对于此程序,输入文件需要格式为: ID:Date:Dayskept:ProductName例如1:12/12/2011:12:A写入文件问题并显示文件内容

这很好,我第一次读示例文件到字典中,但是一旦我将字典保存到一个新文件并尝试打开这个文件,我得到输出: 1:“date”:12/12/2011,“life”:12,“name”: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

正如一个侧面说明了'全球cheasteDictionary'线是完全没有必要的 – 2011-03-27 21:09:58

回答

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"])) 
+0

一定是忘了取出泡菜时,我曾试图写使用方法的文件。非常感谢帮助代码现在工作正常:) – Ash 2011-03-27 21:28:03