Python可以';是否从2个文件中的字符串搜索中提取数据?

Python可以';是否从2个文件中的字符串搜索中提取数据?,python,string,python-3.x,Python,String,Python 3.x,我使用这段代码来搜索和比较两个文件中的字符串 fsig = open('file1.txt', 'r', encoding="utf8") fresult = open('file2.txt', 'r' , encoding="utf8") node = {} for line in fsig: L = line.split() if(L[0] == 'v'): node[L[2]] = int(L[1]) extracted = {} for line i

我使用这段代码来搜索和比较两个文件中的字符串

fsig = open('file1.txt', 'r', encoding="utf8")
fresult = open('file2.txt', 'r' , encoding="utf8")
node = {}

for line in fsig:
    L = line.split()
    if(L[0] == 'v'):
        node[L[2]] = int(L[1])

extracted = {}

for line in fresult:
    L = line.split()
    if(L!=[]):

        if(L[0] == 'v' and L[2] not in extracted):
            extracted[L[2]] = node[L[2]]

print(node)
print(extracted)
我在2个文件中有这样的字符串

{'[root]': 3, 'ht': 2, '.': 0, 'nn': 1}
{'nn': 1, 'ht': 2, '.': 0, '[root]': 3}
文件1

v 0 .
v 1 nn
v 2 ht
v 3 [root]
e 1 0 punctuation
e 3 1 root
e 3 2 root
文件2

t # 17
v 0 ht
v 1 [root]
e 1 0 root
t # 7
v 0 nn
t # 8
v 0 [root]
t # 5
v 0 ht
t # 6
v 0 .
当我运行程序时,它显示如下输出

{'[root]': 3, 'ht': 2, '.': 0, 'nn': 1}
{'nn': 1, 'ht': 2, '.': 0, '[root]': 3}
如果我像这样更改数据文件2

 t # 52

v 0 jj

v 1 prp$

v 2 nn

v 3 nnp

v 4 vbz

v 5 .

v 6 prp

v 7 vbp

v 8 [root]

v 9 ht

e 2 0 adjectival

e 2 1 possession

e 4 2 direct

e 4 3 nominal

e 7 4 clausal

e 7 5 punctuation

e 7 6 nominal

e 8 7 root

e 8 9 root

e 9 9 null


t # 53

v 0 prp$

v 1 nn

v 2 nnp

v 3 vbz

v 4 .

v 5 prp

v 6 vbp

v 7 [root]

v 8 ht

e 1 0 possession

e 3 1 direct

e 3 2 nominal

e 6 3 clausal

e 6 4 punctuation

e 6 5 nominal

e 7 6 root

e 7 8 root

e 8 8 null
为什么会出现这种错误

Traceback (most recent call last):
  File "C:\Users\MAX\Documents\success.py", line 18, in <module>
    extracted[L[2]] = node[L[2]]
KeyError: 'jj'
回溯(最近一次呼叫最后一次):
文件“C:\Users\MAX\Documents\success.py”,第18行,在
提取的[L[2]]=节点[L[2]]
KeyError:'jj'

您的错误是一个错误。在节点中找不到密钥“jj”,因为它不存在于文件_1中的任何位置。不能在没有键的字典中调用值。如果要忽略此错误并将键值对添加到两个字典中,则需要。

您的代码正在尝试访问节点dict中不存在的元素。