簡體   English   中英

使用Python在TXT文件中的每個時間戳之前添加換行符

[英]Adding a line break before each time stamp in TXT file using Python

我試圖通過使用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'\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”出現在除時間戳開頭之外的其他任何地方,那么簡單的替換就足夠了。

必須有某種模式才能實現這一目標。 鑒於所有日志均來自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”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM