标签:inf 特殊情况 error dex 思考 变量 值类型 print book
学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心。——法布尔
快夜深人静,窗外蛙声一遍,把这篇写完分享给大家!
import xlrd
workbook = xlrd.open_workbook('page_element_infos.xlsx')
sheet = workbook.sheet_by_index(0)
cell_value = sheet.cell_value(1,5) #取第2行第6列的值
print(type(cell_value),cell_value) #打印超时时间的值
上述代码是读取图片中的excel,结果是 10.0,而我们需要的结果是10;
造成该问题的原因就是 xlrd模块 单元格为数字默认会转换为浮点数;
说说我的实际编码需求:如果为空就要给变量赋默认值 5 ,如果设置了值就用设置的整型值。
cell_value = sheet.cell_value(1,5)
if cell_value == '' : #如果为空就要给变量赋默认值 5
cell_value = 5
else:
cell_value = int(cell_value)
cell = sheet.cell(1,5) # 创建一个单元格对象
#cell.ctype返回单元格值类型:0 empty,1 string,2 number,3 date,4 boolean,5 error
if cell.ctype==2 and int(cell.value)==cell.value: #与的后面是为了防止把该列真实为浮点数的值转为整型
cell_value = int(cell.value)
elif cell.ctype==0: #如果为空就要给变量赋默认值 5
cell_value = 5
cell_value = sheet.cell_value(1,5)
cell_value = int(cell_value) if isinstance(cell_value,float) else 5 #isinstance判断cell_value值的类型是否为浮点型
print(cell_value)
以上三个实例代码小结:
cell_value = int(sheet.cell_value(1,5)) if isinstance(sheet.cell_value(1,5),float) else 5
标签:inf 特殊情况 error dex 思考 变量 值类型 print book
原文地址:https://www.cnblogs.com/dream66/p/12528384.html