2011-03-27 42 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