Python简历筛选程序如何在排序得分结果中同步输出对应PDF文件名
代码修改方案
核心逻辑是把单独存储得分的结构,替换为同时存储得分和对应文件名的可迭代结构(用元组实现最方便排序),具体修改步骤如下:
步骤1:修改得分存储变量的结构
你原来的代码应该是用单独的列表存得分:
score_list = [] # 单份简历处理环节 score = calculate_score(resume_text) # 你的自定义打分函数 score_list.append(score)
把这部分调整为存储二元组,第一个元素存得分、第二个存对应PDF文件名:
# 初始化存储「得分+文件名」的列表 score_with_filename = [] # 单份简历处理环节,假设你当前遍历到的文件名变量为pdf_filename score = calculate_score(resume_text) score_with_filename.append( (score, pdf_filename) )
如果需要同时关联简历上提取的姓名,直接改成三元组(score, pdf_filename, name)即可,后续排序逻辑不受影响。
步骤2:调整排序逻辑
原来的排序逻辑是直接对得分列表排序:
sorted_scores = sorted(score_list, reverse=True) # 得分降序排列
现在直接对元组列表排序即可,Python默认会按元组的第一个元素(得分)排序,不需要额外调整排序规则:
sorted_result = sorted(score_with_filename, reverse=True)
步骤3:调整最终输出逻辑
原来的输出只打印得分数值,现在遍历排序后的元组列表分别取值输出即可:
print("简历得分排名:") for rank, (score, filename) in enumerate(sorted_result, start=1): print(f"第{rank}名:{filename},得分{score}")
额外注意点
如果存在重名文件的情况,可以存储文件的绝对路径避免混淆,绝对路径可以用os.path.abspath(os.path.join('resume', pdf_filename))生成。
内容的提问来源于stack exchange,提问作者Abrar Hussain
相关产品推荐
相关产品推荐

