使用 xlrd 从 excel 表中读取时间,以时间格式而不是浮点数
·
回答问题
我正在尝试从 excel 文件中读取一些数据。其中一列具有格式为 HH:MM:SS 的时间值。 Xlrd 读取这个时间并将其转换为浮点数。我的 python 文件中有另一个时间值,我想将其与 excel 导入的时间值进行比较。只要其中一个是“时间”而另一个是“浮动”,我就无法做到这一点。有什么建议么?
这就是我的 excel 文件的样子——
Time L_6_1 PW_6_1 Tc_6_1 Te_6_1
0:00:00 10000 500 290 270
1:00:00 10000 600 290 270
2:00:00 10000 700 290 270
3:00:00 10000 800 290 270
4:00:00 10000 900 290 270
这就是我阅读这些数据的方式 -
wb=xlrd.open_workbook('datasheet.xls')
sh = wb.sheet_by_index(0)
timerange=sh.col_values(0)
print timerange
这是时间浮点值的输出 -
[u'Time', 0.0, 0.041666666666666664, 0.083333333333333301, 0.125, 0.166666666666
66699, 0.20833333333333301, 0.25, 0.29166666666666702, 0.33333333333333298, 0.37
5, 0.41666666666666702, 0.45833333333333298, 0.5, 0.54166666666666696, 0.5833333
3333333304, 0.625, 0.66666666666666696, 0.70833333333333304, 0.75, 0.79166666666
666696, 0.83333333333333304, 0.875, 0.91666666666666696, 0.95833333333333304]
Answers
Excel 将时间存储为一天的分数。您可以将其转换为 Python 时间,如下所示:
from datetime import time
x = excel_time # a float
x = int(x * 24 * 3600) # convert to number of seconds
my_time = time(x//3600, (x%3600)//60, x%60) # hours, minutes, seconds
如果您需要更高的精度,您可以通过转换为毫秒或微秒并以这种方式创建时间来获得它。
更多推荐

所有评论(0)