小尤学编程 2022-07-29 17:14 采纳率: 33.3%
浏览 14

Excel文件数据改变之后,代码的结果还是不变

问题遇到的现象和发生背景

在做一个简单的项目,遇到了一些问题

问题相关代码,请勿粘贴截图

img

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)

运行结果及报错内容

img

我的解答思路和尝试过的方法

原来的数据是12H10M0S,我想试一下他的估算秒数的功能,将最后的秒数改成了55S,但是为什么显示的依旧是0S啊

我想要达到的结果

最后两行不应该是
12,10,55
731吗

  • 写回答

3条回答 默认 最新

  • 亖夕 Python领域新星创作者 2022-07-29 23:41
    关注

    改后重新运行了吧

    评论

报告相同问题?

问题事件

  • 创建了问题 7月29日

悬赏问题

  • ¥15 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。
  • ¥20 网站后台使用极速模式非常的卡
  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)