簡體   English   中英

查找日期並替換單詞 - Python

[英]Finding a date and replacing a word - Python

我有如下代碼,我在其中過濾掉早於 2 天的日期,並將其設為粗體並更改其顏色。

在此,我還想將發現日期早於 2 天的警告替換為失敗

任何人都可以通過下面的代碼幫助我們如何實現它。

import re
from datetime import datetime
ht ="""<tr>
<td>32356</td>
<td>cfra03</td>
<td>04-07-2020</td>
<td>Ssv</td>
<td>Warning</td>
</tr>
<tr>
<td>32367</td>
<td>c017</td>
<td>04-08-2020</td>
<td>SDR</td>
<td>Completed</td>
</tr>
<tr>
<td>29451</td>
<td>c10</td>
<td>04-05-2020</td>
<td>SR</td>
<td>Warning</td>
</tr>
"""

date_var = re.findall(r"[\d]{2}-[\d]{2}-[\d]{4}", ht)
for s in date_var:
    element_date = datetime.strptime(s, "%m-%d-%Y")
    if (datetime.now() - element_date).days > 2:
        ht = ht.replace(s, '<b><font color="#ff0000">'+s+'</font></b>')
print (ht)  

當前 output 是-

<tr>
<td>32356</td>
<td>cfra03</td>
<td>04-07-2020</td>
<td>Ssv</td>
<td>Warning</td>
</tr>
<tr>
<td>32367</td>
<td>c017</td>
<td>04-08-2020</td>
<td>SDR</td>
<td>Completed</td>
</tr>
<tr>
<td>29451</td>
<td>c10</td>
<td><b><font color="#ff0000">04-05-2020</font></b></td>
<td>SR</td>
<td>Warning</td>
</tr>

Output 應該是-

<tr>
<td>32356</td>
<td>cfra03</td>
<td>04-07-2020</td>
<td>Ssv</td>
<td>Warning</td>
</tr>
<tr>
<td>32367</td>
<td>c017</td>
<td>04-08-2020</td>
<td>SDR</td>
<td>Completed</td>
</tr>
<tr>
<td>29451</td>
<td>c10</td>
<td><b><font color="#ff0000">04-05-2020</font></b></td>
<td>SR</td>
<td><b><font color="#ff0000">Failed</font></b></td>
</tr>
'''

這段代碼:

import re
from datetime import datetime
ht ="""<tr>
<td>32356</td>
<td>cfra03</td>
<td>04-07-2020</td>
<td>Ssv</td>
<td>Warning</td>
</tr>
<tr>
<td>32367</td>
<td>c017</td>
<td>04-08-2020</td>
<td>SDR</td>
<td>Completed</td>
</tr>
<tr>
<td>29451</td>
<td>c10</td>
<td>04-05-2020</td>
<td>SR</td>
<td>Warning</td>
</tr>
"""

result = []
rows = ht.split('<tr>')
for row in rows :
    date_var = re.findall(r"[\d]{2}-[\d]{2}-[\d]{4}", row, re.DOTALL)
    for s in date_var:
        element_date = datetime.strptime(s, "%m-%d-%Y")
        if (datetime.now() - element_date).days > 2:
            row = row.replace(s, '<b><font color="#ff0000">'+s+'</font></b>')
            row = row.replace( 'Warning', 'Failed') # or whatever
    result.append(row)

print ('<tr>'.join(result))

給出這個結果:

<tr>
<td>32356</td>
<td>cfra03</td>
<td>04-07-2020</td>
<td>Ssv</td>
<td>Warning</td>
</tr>
<tr>
<td>32367</td>
<td>c017</td>
<td>04-08-2020</td>
<td>SDR</td>
<td>Completed</td>
</tr>
<tr>
<td>29451</td>
<td>c10</td>
<td><b><font color="#ff0000">04-05-2020</font></b></td>
<td>SR</td>
<td>Failed</td>
</tr>

您可以根據需要在Failed周圍添加 HTML。

暫無
暫無

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

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