我是Python腳本編寫新手。有一個文件,其中包含以下數據無法將第二行添加到Python中的字典
Cascade.from = testvalue1
cascade.from1 = testvalue2
上述上下文位於test.txt中。我曾經爲了寫了下面的代碼,把這個字典把它拿來以後的代碼是運行在上面的代碼之後,如下
myvalue = {}
with open('test.txt', 'r') as myfile:
for line in myfile:
name, val = line.split('=')
myvalue[name] = str(val.strip())
print myvalue
,我只看到下面的數據 {"cascade.from": "testvalue1"}
它不讀下一行和它的沒有被添加到字典中。 我的期望是:{"cascade.from": "testvalue1", "cascade.from1": "testvalue2"}
。所以,當撥打電話myvalue["cascade.from1"]
它應該反過來testvalue2
任何人都可以讓我知道什麼是在這裏失蹤?
以上只是一個函數中的一小塊,這裏是我的代碼完成的事情
def readlocalfile():
os.chdir(sub_dir)
print ("prinintng current directory" + os.getcwd())
file = open(config_file,'r')
file_read = file.readlines()
myvars = {}
with open(config_file) as myfile:
for line in myfile:
name, var = line.split("=")
myvars[name] = str(var.strip())
print myvars
replace_val = myvars["cascade.from1"]
print ("the base value is "+ replace_val)
蔭調用這個函數外,它拋出一個KeyError異常
你缺少':'後'... as myfile'。但是,這應該導致崩潰,而不是你遇到的問題。我添加了':'並嘗試了代碼,它適用於我。 – Cleared
@Cleared爲MYFILE我已經加入後:但仍然不是爲我工作:( –
這是真的,你已經嘗試的代碼是不是你的代碼的純副本或有你「改寫」,它只是這個問題的原因?即時通訊問是因爲你有兩個錯別字到目前爲止,這兩個會導致崩潰。我已經試過上面的代碼,它適用於我... – Cleared