2017-10-07 45 views
0

好的,所以我想把文件的名字作爲python的原始輸入,但它不保存到我放入的文件中。嘗試保存到文件時沒有任何反應? python 2.7

我沒有收到錯誤,它只是不保存我寫的文件。 示例我運行代碼我選擇了我創建的文件並命名爲「警察」代碼運行並接受輸入,但沒有任何反應。 該文件仍然是空的。

lista = {"police":"911"} 
functiontext = raw_input("call function 1(save) or 2(load) ") 
arguements = raw_input("input file name ") 

def save(lista,arguments): 
    filen = arguments 
    spara = lista 
    fil = open(filen + ".txt","w") 

    for keys, values in spara.items(): 

      spara_content = keys + ": " + values + "\n" 


      fil.write(spara_content) 
      fil.close() 


def load(lista, arguments): 
    ladda = open("telefonbok.txt","r") 
    for namesandnumbers in ladda: 
     (key, val) = namesandnumbers.split(": ") 
     lista[(key)] = val 
     lista = ladda 
     return lista 

if functiontext == 1: 
    save(lista,arguments) 

if functiontext == 2: 
    load(lista, arguments) 

那麼這裏有沒有人有這個問題的答案?

+0

'arguements'≠'arguments' –

+0

的'結果raw_input'被一個字符串。所以你必須用'if functiontext =='1':'替換'if functiontext == 1:''。 – Matthias

+0

請不要用瑞典語部分編寫代碼。一路用英語:) –

回答

0

raw_input將返回一個字符串,而您正在檢查整數比較。您的文件沒有被保存,因爲save永遠不會被調用。

if functiontext == 1: 
    save(lista,arguments) 

if functiontext == 2: 
    load(lista, arguments) 

應該是:

if functiontext == '1': 
    save(lista, arguments) 

if functiontext == '2': 
    load(lista, arguments) 

注意,你也有一個錯字關於 「arguements」 和 「論據」

+0

上帝的大壩,非常明顯的感謝。 – noname292123

相關問題