한 줄씩 파일을 읽고 한 줄의 문자열이 사전에서 다른 줄과 같은 줄에 있는지 확인하고 싶습니다. 이 코드파일 읽기 및 검사 사전
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 라인과 같은 somehting도 충분합니다. –
분명히,'line [17:20] .strip()'에서 읽히는 것은 3.2입니다. 잔여. 파일의 본질을 보지 않고 말할 수는 없습니다. –
''dic'에'3.2'라는 이름의 키가 없다는 것을 알려줍니다. 어쩌면 당신의 조각은 wrogn 결과를 준다 – linusg