Python 3.x中的字符串到时间转换错误

Python 3.x中的字符串到时间转换错误,python,python-3.x,datetime,time,strptime,Python,Python 3.x,Datetime,Time,Strptime,我在excel中的某些时间值如下: 数据: 覆盖范围: 当尝试将它们作为时间字符串处理时,我得到: TIME_FMT= "%H%M" datetime.strptime('932',TIME_FMT).time() # Output : datetime.time(9, 32) datetime.strptime('1253',TIME_FMT).time() # Output : datetime.time(12, 53) datetime.strptime('5',TIME_FMT).

我在excel中的某些时间值如下:

数据: 覆盖范围: 当尝试将它们作为时间字符串处理时,我得到:

TIME_FMT= "%H%M"

datetime.strptime('932',TIME_FMT).time()
# Output : datetime.time(9, 32)

datetime.strptime('1253',TIME_FMT).time()
# Output : datetime.time(12, 53)

datetime.strptime('5',TIME_FMT).time()
# Output : ValueError: time data '5' does not match format '%H%M'
如何捕获这些异常值以进行正常处理

我知道5与格式%H%M不匹配。

如果在字符串中添加一些前导“0”,则转换可以如下进行:

代码: 测试代码: 结果:
TIME_FMT= "%H%M"

datetime.strptime('932',TIME_FMT).time()
# Output : datetime.time(9, 32)

datetime.strptime('1253',TIME_FMT).time()
# Output : datetime.time(12, 53)

datetime.strptime('5',TIME_FMT).time()
# Output : ValueError: time data '5' does not match format '%H%M'
def from_time_string(time_string):
    TIME_FMT = "%H%M"
    leading = '0' * (3 - len(time_string))
    return dt.datetime.strptime(leading + time_string, TIME_FMT).time()
for i in ('932', '1253', '5'):
    print(from_time_string(i))
09:32:00
12:53:00
00:05:00