解析带有未知分隔符的行



是否有任何方法,如何解析包含某些格式和值的日期行?我在寻找通解。我在写脚本,它应该验证字符串。我的输入是一些字符串和时间格式。例如:

在第一个文件和已知的时间格式

[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

这将通过所有模板,returndatetime对象,如果它可以从linereturn None中提取一个,如果没有模板匹配。

最新更新