当前位置: 首页 > news >正文

【Python】为什么不能直接比较数字 if student_id == 667788

实现一个批量更改文件名的一个需求的时候,发现获取文件名的这个数字之后,直接拿这个数字去便利查找excel中的对应的行,结果返回是 none
为什么呢?

原因就是比较的类型不一致。从这个文件夹中提取的这个数字并不是数字类型,Python会默认为字符类型,所以在比较的时候需要将其转化为数字,或者将查找的这个excel的值转化为字符型型

附上问题代码:

import pandas as pddef find_course_name_by_student_id(excel_file_path, student_id):print(f"-- finding the code {student_id} .....")df = pd.read_excel(excel_file_path)for index, row in df.iterrows():if str(row['课程代码']) == str(student_id):# print(row['课程名称'])return row['课程名称']# if row['课程代码'] == student_id:#     print("-- "+row['课程名称'])#     return row['课程名称']return None
#
excel_file_path = 'E:\\12-大纲收集\查询代码课程名字.xlsx'import os
import refolder_path = 'E:\\12-大纲收集\测试文件夹'  # 替换为你的文件夹路径
# 指定要添加的字符
fail_run = []
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):# 只处理 PDF 文件if filename.endswith('.pdf'):# 获取文件名中的数字部分hyphen_index = filename.find('-')if hyphen_index != -1:# 提取“-”前的数字部分number_part = filename[:hyphen_index]print(number_part)additional_string = find_course_name_by_student_id(excel_file_path, number_part)print(additional_string)new_filename = f"{number_part}-{additional_string}.pdf"old_file_path = os.path.join(folder_path, filename)new_file_path = os.path.join(folder_path, new_filename)# os.rename(old_file_path, new_file_path)print(f"Renamed: {filename} -> {new_filename}")else:fail_run.append(filename)print("\n\n"+fail_run)

http://www.mrgr.cn/news/53521.html

相关文章:

  • 如何将两个同样大小的List组装成一个Map?
  • windows C++-有效使用PPL(四)
  • Golang | Leetcode Golang题解之第492题构造矩形
  • 华为OD机试2024年真题( 最远足迹)
  • Python库matplotlib之十一
  • manimgl 安装win7
  • Vue脚手架学习 vue脚手架配置代理、插槽、Vuex使用、路由、ElementUi插件库的使用
  • 判断推理学习
  • snmpbulkwalk使用说明
  • CVTE Android面试题及参考答案
  • 查缺补漏----三次握手与四次挥手
  • 用友 NCC SPR 日志工具的使用
  • git区分大小写吗?如果不区分,那要如何设置?
  • SQLI LABS | Less-1 GET - Error based - Single Quotes - String
  • HCIA复习实验
  • 查缺补漏----Cache命中率与缺失率的辨析
  • Guava防击穿回源
  • 蚂蚁华东师范大学:从零开始学习定义和解决一般优化问题LLMOPT
  • 动态规划一>下降路径最小和
  • 代码随想录算法训练营第48天| 739. 每日温度,496.下一个更大元素 I,503.下一个更大元素II