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

时间:2019-01-31 18:26:51

标签: python python-2.7

我正在尝试通过使用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开始测试

2 个答案:

答案 0 :(得分:1)

如果您知道行始终以“ 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'\n\1'
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”出现在除时间戳开头之外的其他任何地方,那么可以简单地替换可能就足够了。

答案 1 :(得分:0)

必须有某种模式才能实现这一目标。鉴于所有日志均来自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

您也可以使用文本编辑器(如notepad ++)执行相同的操作。只需搜索图案,然后用新的换行符和图案替换它即可。例如,搜索“2018”,并用“\ n2018”

替换它