У меня есть скрипт python, который должен найти разницу между двумя файлами, который работает нормально, но когда я пытаюсь написать его как функцию, он не работает.
def diff_tool ():
with open('C:\\Users\\rites\\Downloads\\2018temp_new.json', encoding="utf-8") as f1:
f1_text = f1.read().splitlines()
with open('C:\\Users\\rites\\Downloads\\2019tempnew.json', encoding="utf-8") as f2:
f2_text = f2.read().splitlines()
# Find and print the diff:
diffile= []
diff = difflib.Differ()
for line in diff.compare(f1_text, f2_text):
#json.dump(line,f, indent=2)
if line.startswith(("-", "+", "?")):
diffile.append(line)
#print (line, file=f)]updated=[]
#lines = diff.splitlines()
updated, deleted, inserted = [],[],[]
lines = [line for line in diffile if line.find('"header"') == -1]
for i in range(len(lines)):
try:
if lines[i+1].startswith('?'):
if lines[i].startswith('-'):
updated.append(lines[i])
updated.append (lines[i+1])
else:
if lines[i].startswith('+'):
deleted.append(lines[i])
elif lines[i].startswith('-'):
inserted.append(lines[i])
except IndexError:
continue
lists = ["updated", "deleted", "inserted"]
data = {listname: globals()[listname] for listname in lists}
with open ('diff_result.json', 'w', encoding='utf-8') as outfile:
json.dump(data,outfile)
Я хочу запишите это как функцию, которую я хочу позже поставить как сервис. Я новичок в python и пробую его.
Когда я запускаю его в консоли python, я получаю сообщение об ошибке ниже ключа -
data = {listname: globals()[listname] for listname in lists}
KeyError: 'updated'
Имеется ключ "обновлено" .