我想逐行讀取一個文件,並檢查每行是否我的字典允許一行字符串與另一個字符串在同一行中。我想出了這個代碼閱讀文件和檢查字典
dic={'ALA':['N','H','CA','HA','CB','HB1','HB2','HB3','C','O'],
'GLY':['N','H','CA','HA2','HA3','C','O'],
(...)
}
fin=open('file.pdb','r')
for line in fin:
atom=line[12:16].strip()
resi=line[17:20].strip()
if atom not in dic[resi]:
print(line)
但它給我:
Traceback (most recent call last):
File "names.py", line 38, in <module>
if atom not in dic[resi]:
KeyError: '3.2'
所以這是行不通的。奇怪地將dic [resi]替換爲dic ['ALA']之類的東西可以很好地工作。我在這裏做錯了什麼?
給我們一個'file.pdb'的片段,甚至像2-3行就足夠了 –
顯然,無論是在'line [17:20] .strip()'讀取的是3.2,這不是一個殘留。沒有看到文件的性質是不可能的。 –
它只是告訴你在'dic'中沒有鍵名'3.2'的鍵。也許你的切片給wrogn結果 – linusg