小尤学编程 2022-08-02 11:03 采纳率: 33.3%
浏览 65

小项目,自己越写越糊涂了,旁观者清,大家看一下

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

自己越写越糊涂了有点,希望有人给我指点一下

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

# 打开excel文件
rbook = xlrd.open_workbook('L6外壳螺丝.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) # 正则提取以后是列表类型
for i in 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)

运行结果及报错内容
通电时间 运行时间 暂停时间
2H1 M5 S 1 H23M3S 0 H4 M55S
12H10M0S 8H24M3S 1 H11M3S
11H50M0S 8 26M30S 0H8 M2S
12H10M0S 18 H16M9SI 1H8 M11S
['12', '10', '0', '']
['12', '10', '0', '']
['12', '10', '0', '']
['12', '10', '0', '']
['12', '10', '0', '']
['12', '10', '0', '']
['12', '10', '0', '']
['12', '10', '0', '']

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

我想对列表里面所有的数字都进行正则提取,但是正则提取之后打印的话,只有一个元素,怎么能够把通电时间里另外的数字和另外两个时间里面的数字正则提取出来

我想要达到的结果

我想把通电时间,运行时间,暂停时间的数字提取出来,因为我要将单位统一成分钟,然后再写回Excel原来的位置

  • 写回答

1条回答 默认 最新

  • 快乐小土狗 2022-08-02 13:07
    关注

    这不就是两个都提取出来了?

    img

    
    re.findall("\d",'2H1')
    
    评论

报告相同问题?

问题事件

  • 创建了问题 8月2日

悬赏问题

  • ¥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语言)