使用 Python 在 TXT 文件中的每个时间戳之前添加换行符



我试图通过使用python脚本在每个时间戳之前添加换行符来使TXT日志文件更具可读性。

当前文件示例:

2018-11-28 13:12:01.023 参数定义!2018-11-28 13:12:01.023 开始测试

使其如下所示:

2018-11-28 13:12:01.023 参数定义!

2018-11-28 13:12:01.023 开始测试

如果你知道你的行总是以"XXXX-XX-XX XX:XX:XX.XXX"形式的时间戳开头,其中每个"X"都是一个数字,那么你可以使用正则表达式来识别任何出现的情况,然后在它找到的任何匹配项之前粘贴一个换行符("n")(这些匹配项用"1"表示)。

import re
log = r"2018-11-28 13:12:01.023 parameter definition!2018-11-28 13:12:01.023 starting test1955-10-15 01:22:33.987 hi"
pattern = r'(d{4}-d{2}-d{2} d{2}:d{2}:d{2}.d{3})'
replacement_string = r'n1'
print(re.sub(pattern, replacement_string, log))

输出:

2018-11-28 13:12:01.023 parameter definition!
2018-11-28 13:12:01.023 starting test
1955-10-15 01:22:33.987 hi

请注意,这总是在字符串的最开头粘贴换行符,即使它上面没有要分隔的行。

虽然正如Rasthiya所展示的那样,如果你知道时间戳只是从"2018"开始,并且你不希望"2018"出现在除时间戳开头之外的其他任何地方,那么简单的替换可能就足够了。

必须有一些模式来实现这一点。鉴于所有日志都来自 2018 年,您可以执行以下操作:

string = "2018-11-28 13:12:01.023 parameter definition!2018-11-28 13:12:01.023 starting test"
print(string.replace("2018", "n2018"))

这给了

2018-11-28 13:12:01.023 parameter definition!
2018-11-28 13:12:01.023 starting test

您也可以使用记事本++等文本编辑器做同样的事情。只需搜索模式并将其替换为换行符和模式即可。例如,搜索"2018"并将其替换为"2018"

最新更新