python - 使用 Python 从文本文件中提取 StatusDescription
问题描述
我有一个示例文本文件。我想为每一行提取 StatusDescription 并且如果它不可用,我希望它返回一个 null 即
第 1 行状态描述=空
Line2 StatusDescription=成功
示例文本文件:
[2019 年 10 月 23 日] [12:14:49:150] [[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] [22368936] [172.30.26.90] [ c84283f4-5a3d-4559-b8d1-6ae2bdfc6075][com.intellectdesign.iportal.as.integrator.host.GenericCommunicator][EXIT] {离开 sendToHostEx 方法...}
[2019 年 10 月 23 日] [12:14:49:150] [[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] [22368936] [172.30.26.90] [ c84283f4-5a3d-4559-b8d1-6ae2bdfc6075][com.intellectdesign.digitalface.formatter.CoopCardSummmaryFormatter][错误] {hdr_Tran_Id=COOP_CARD_DETAILS~*hdr_Ref_No=1~*res_Status=00000~*CorrelationID=AAAAAD7B5619~*IDMessage StatusCode=S_001~*StatusDescription=成功~*StatusDescriptionKey=en-US}
解决方案
这应该适用于您的情况:
import re
def find_substring(line):
try:
result = re.search('StatusDescription=(.*)~', line)
return result.group(1)
except:
return "Null"
with open('text.txt') as f:
lines = f.readlines()
for line in lines:
status_description = find_substring(line)
print(status_description)
推荐阅读
- sql-server - 如何使用 Golang SDK 查询 RDS 的任意表
- yaml - 在 Azure Pipline 中将数字格式化为 4 位数字
- flask - 烧瓶管理员的单独数据库
- angular - 如何在 Angular Web 中显示 blob 内容(doc、ppt、xls)
- okhttp - OkHttp 是否信任个人 CA?
- html - 如何使日期完全出现在 vuejs-datepicker (z-index)
- javascript - 重复数组上的 D3.ScaleTime
- pandas - 如何聚合多列 - Pandas
- mongodb - 如何在 MongoDB 中启用数据压缩
- c++ - Erase 是否删除了 stl 无序映射的元素使用的堆内存