File size: 1,343 Bytes
e16247a 3725c16 e16247a 3725c16 e16247a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
import pandas as pd
import os
import difflib
#输入文本
input_text = "TypeError: unsupported operand type(s) for ^: 'int' and 'float'"
demo_code_folder = './'
errorType = pd.read_excel('./错误类型.xlsx')
type = []
for i in range(len(errorType)):
information = {
'num': int(errorType['number'][i]),
'type': errorType['type'][i],
'context': errorType['context'][i]
}
type.append(information)
# 计算输入文本与预设错误类型文本信息的相似度
best_match = None
best_similarity = 0
for info in type:
similarity = difflib.SequenceMatcher(None, input_text, info['type']).ratio()
if similarity > best_similarity:
best_similarity = similarity
best_match = info
# 输出相似度最高的文本信息及示例代码
if best_match:
print(f"存在的错误为:{best_match['context']}")
code_file_name = str(best_match['num']) + ".py"
code_file_path = os.path.join(demo_code_folder, code_file_name)
# 检查示例代码文件是否存在
if os.path.exists(code_file_path):
# 读取示例代码内容
with open(code_file_path, "r") as file:
code = file.read()
print(f"示例代码:\n{code}")
else:
print("未找到对应的示例代码文件")
else:
print("未找到相似的错误类型")
|