标签:write ret 正则表达 文本格式 如何 顺序 正则表达式 pen 美国
需求:
某软件的Log文件,其中的日期格式为‘yyyy-mm-dd‘:
.....
2016-05-23 10:59:26 status upacked python3-pip.all
2016-05-23 10:59:26 status half-configured python3-all
2016-05-23 10:59:26 status installed python3-pip.all
2016-05-23 10:59:26 configure python3-wheel:all 0.24.0-1
.....
我们想把其中日期格式改为美国日期的格式’mm/dd/yyyy‘
‘2016-05-23 => 05/23/2016‘,应如何处理?
思路:
使用正则表达式re.sub()方法做字符串替换,利用正则表达式的捕获组,捕获每个部分内容,在替换字符串中调整各个捕获组的顺序。
代码:
py文件:
mport re
f = open(‘shizhan\dpdk.log‘)
log = f.read()
# 利用正则表达式的捕获组进行替换。
ret = re.sub(‘(\d{4})-(\d{2})-(\d{2})‘,r‘\3/\2/\1‘,log)
#完成写入
open(‘shizhan\dpdk.log‘,‘a‘).write(‘\n‘+ret)
open(‘shizhan\dpdk.log‘,‘a‘).close()
print(ret)
# 下面给捕获组取名,更直观一点也是可以的。
# ret2 = re.sub(‘(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})‘,r‘\g<day>/\g<month>/\g<year>‘,log)
# print(ret2)
dpdk.log:
2016-05-23 10:59:26 status upacked python3-pip.all
2016-05-23 10:59:26 status half-configured python3-all
2016-05-23 10:59:26 status installed python3-pip.all
2016-05-23 10:59:26 configure python3-wheel:all 0.24.0-1
标签:write ret 正则表达 文本格式 如何 顺序 正则表达式 pen 美国
原文地址:https://www.cnblogs.com/Richardo-M-Q/p/13284079.html