问题遇到的现象和发生背景
在做一个简单的项目,遇到了一些问题
问题相关代码,请勿粘贴截图
import xlrd
import re
# 打开excel文件
rbook = xlrd.open_workbook('test.xlsx')
# sheets方法返回对象列表,[<xlrd.sheet.Sheet object at 0x103f147f0>]
rbook.sheets()
# xls默认有3个工作簿,Sheet1,Sheet2,Sheet3
rsheet = rbook.sheet_by_index(0) # 取第一个工作簿
# 循环工作簿的所有行
for row in rsheet.get_rows():
yesterday_on_column = row[2] # 通电时间所在的d列
yesterday_on_value = yesterday_on_column.value # 项目名
if yesterday_on_column != '通电时间': # 排除第二行
yesterday_run_column = row[3] # 运行时间所在的列
yesterday_run_value = yesterday_run_column.value
if yesterday_run_column != '运行时间': # 排除第三行
yesterday_stop_column = row[4]# 暂停时间所在的列
yesterday_stop_value = yesterday_stop_column.value
# 打印
print(yesterday_on_value, yesterday_run_value,yesterday_stop_value) # 字符串类型
yesterday_on_time = re.split(r"[H|M|S]",yesterday_on_value) # 正则提取以后是列表类型
# print(yesterday_on_time)
# print(type(yesterday_on_time))
# 强制类型转换为int
yesterday_on_time[0] = int(yesterday_on_time[0])
yesterday_on_time[1] = int(yesterday_on_time[1])
yesterday_on_time[2] = int(float(yesterday_on_time[2]))
print(yesterday_on_time)
# 秒数估算一位,如果大于40秒就记为一分钟
if yesterday_on_time[2] >= 40:
yesterday_on_time[1] += 1
on_time = yesterday_on_time[0] * 60 + yesterday_on_time[1]
print(on_time)
运行结果及报错内容
我的解答思路和尝试过的方法
原来的数据是12H10M0S,我想试一下他的估算秒数的功能,将最后的秒数改成了55S,但是为什么显示的依旧是0S啊
我想要达到的结果
最后两行不应该是
12,10,55
731吗