有什么办法,如何解析包含某种格式和值的日期的行?我正在寻找一般解决方案。我写脚本,应该验证字符串。我的输入是一些字符串和时间格式。例如:
以第一个文件和已知时间格式
[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
等。
我已经有了根据时间格式从日期获取时间戳的功能,但我不知道如何从该行解析日期。
有任何想法吗?感谢。
答案 0 :(得分:1)
我会在这里使用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
中提取一个,如果没有模板匹配的话。