2015-04-23 75 views
0

這是遇到我到目前爲止的代碼錯誤使用「.format」

def Save_Scores(): 
    global score 
    score=str(score) 
    file=open("Class{}.txt",'a').format(group) 
    file.write("\n") 
    file.write ("Name: "+name+"\n") 
    file.write("Score: "+score+"/10\n") 
    file.close() 
quiz() 

但是我遇到這個錯誤時,函數跑

line 42, in Save_Scores 
file=open("Class{}.txt",'a').format(group) 
AttributeError: '_io.TextIOWrapper' object has no attribute 'format' 
+1

您是不是要找「 」類{} TXT。「 .format(集團)'? – bereal

回答

3

str.format()是對String對象的方法,但您正試圖在文件上調用它。它應用到你想傳遞給open()呼叫字符串:

file = open("Class{}.txt".format(group), 'a') 

其他最佳實踐可以應用在這裏:

  • 而不是使用score作爲一個全球性,使其成爲一個參數傳遞給你的函數,然後在調用函數時將其傳入。

  • 您還使用namegroup作爲全局變量,這些也應該是這裏的參數。使用with聲明讓Python爲您關閉文件。

  • 您也可以對寫入文件的數據使用字符串格式,而不是使用連接。

這些變化的功能應該是這樣的:

def Save_Scores(group, name, score): 
    with open("Class{}.txt".format(group), 'a') as file: 
     file.write("\nName: {}\nScore: {}/10\n".format(name, score)) 
相關問題