我正在尝试通过使用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开始测试
答案 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”
替换它