'''
text1:文本1
text2:文本2
text2_differ_list:文本2中存在差异的地方
text1_differ_list:文本1中存在差异的地方
flag:e(相同点)/n(差异点)
value:相同或者不同的内容
'''
def get_txts_compare_differ(text1, text2):
str1 = text1
str2 = text2
matcher = difflib.SequenceMatcher(None, str1, str2)
# print(matcher)
text1_differ_list = []
text2_differ_list = []
for op, i1, i2, j1, j2 in matcher.get_opcodes():
text1_differ_dict = {}
text2_differ_dict = {}
if op == 'insert':
# print("Insert:", str2[j1:j2])
text2_differ_dict['flag'] = 'n'
text2_differ_dict['value'] = str2[j1:j2]
text2_differ_list.append(text2_differ_dict)
elif op == 'delete':
# print("Delete:", str1[i1:i2])
text1_differ_dict['flag'] = 'n'
text1_differ_dict['value'] = str1[i1:i2]
text1_differ_list.append(text1_differ_dict)
elif op == 'replace':
# print("Replace:", str1[i1:i2], "with", str2[j1:j2])
text1_differ_dict['flag'] = 'n'
text1_differ_dict['value'] = str1[i1:i2]
text1_differ_list.append(text1_differ_dict)
text2_differ_dict['flag'] = 'n'
text2_differ_dict['value'] = str2[j1:j2]
text2_differ_list.append(text2_differ_dict)
elif op == 'equal':
# print("Equal:", str1[i1:i2])
text1_differ_dict['flag'] = 'e'
text1_differ_dict['value'] = str1[i1:i2]
text1_differ_list.append(text1_differ_dict)
text2_differ_dict['flag'] = 'e'
text2_differ_dict['value'] = str2[j1:j2]
text2_differ_list.append(text2_differ_dict)
# print('text1_differ_list==', text1_differ_list)
# print('text2_differ_list==', text2_differ_list)
return text1_differ_list, text2_differ_list