是否有任何方法,如何解析包含某些格式和值的日期行?我在寻找通解。我在写脚本,它应该验证字符串。我的输入是一些字符串和时间格式。例如:
在第一个文件和已知的时间格式
[10:17:21 20.04.1911] 890.584
[%H:%M:%S %d.%m.%Y]
在第二个文件和已知的时间格式
10:17:21-20.04.1911 890.584
%H:%M:%S-%d.%m.%Y
在第三个文件和已知的时间格式
(20-04-1911) 890.584
(%d-%m-%Y)
在第四个文件和已知的时间格式
20-04-1911 10:17:21 890.584
%d-%m-%Y %H:%M:%S
等。我已经有函数根据时间格式从日期获取时间戳,但我不知道,如何从那一行解析日期。
什么好主意吗?谢谢。
我将使用try
:
import datetime
def parse_date(line):
for template, length in [("[%H:%M:%S %d.%m.%Y]", 21),
("%H:%M:%S-%d.%m.%Y", 19), ...]:
try:
return datetime.datetime.strptime(line[:length], template)
except ValueError:
pass
这将通过所有模板,return
和datetime
对象,如果它可以从line
和return None
中提取一个,如果没有模板匹配。