从 python 中的文本文件中提取多个模式(单个 def 函数)
Extract the multiple patterns from the text file in python (Single def function)
我的文本文件包含以下信息。由此我想用单个 def 函数提取多个模式,你能帮我吗
pattern1:打印包含STALL关键字
的特定行
patter2: 打印包含OVERRUN关键字
的行
pattern3:打印包含两个关键字SIM DASD和ALERT关键字
的行
pattern4:打印包含 “SNAP” 和 “IS-” 的行,并以包含关键字 [= =28=]显示结束
Input:
08:12:19 80000000 00000000 2967561E
08:12:19 PGM-BA13 CODE-U00BA1302 TERM-000000A
08:12:19 SNAP 0003I 08.12.20 CPU-A SS-BSS SSU-BSS IS-3
08:12:19 PSW-07151000 80000000 00000000 2967561E
08:12:19 PGM-BA13 CODE-U00BA1302 TERM-000000A
08:12:19 END OF DISPLAY
23:34:16 CYEM0099E 23.34.16 SIM DASD MODERATE ALERT
20:10:25 CYEM0099E 20.10.25 OVERRUN
13:48:54 CYED0012W MODULE QUEUE FOR MAY BE STALL
输出应该是:
pattern1:
13:48:54 CYED0012W MODULE QUEUE FOR MAY BE STALL
patter2:
20:10:25 CYEM0099E 20.10.25 OVERRUN
pattern3:
23:34:16 CYEM0099E 23.34.16 SIM DASD MODERATE ALERT
patter4:
08:12:19 SNAP0003I 08.12.20 CPU-A SS-BSS SSU-BSS IS-3
08:12:19 PSW-07151000 80000000 00000000 2967561E
08:12:19 PGM-BA13 CODE-U00BA1302 TERM-000000A
08:12:19 END OF DISPLAY
我用过这个代码
value=["STALL","OVERRUN"]
with open('SNAP.txt', mode='r') as infile:
for line in infile:
if value in line:
print(line)
这里不需要模式。 "substring" in "string"
或 "substring" in line
和 line.endswith("suffix")
应该可以正常工作。
我的文本文件包含以下信息。由此我想用单个 def 函数提取多个模式,你能帮我吗
pattern1:打印包含STALL关键字
的特定行patter2: 打印包含OVERRUN关键字
的行pattern3:打印包含两个关键字SIM DASD和ALERT关键字
的行pattern4:打印包含 “SNAP” 和 “IS-” 的行,并以包含关键字 [= =28=]显示结束
Input:
08:12:19 80000000 00000000 2967561E
08:12:19 PGM-BA13 CODE-U00BA1302 TERM-000000A
08:12:19 SNAP 0003I 08.12.20 CPU-A SS-BSS SSU-BSS IS-3
08:12:19 PSW-07151000 80000000 00000000 2967561E
08:12:19 PGM-BA13 CODE-U00BA1302 TERM-000000A
08:12:19 END OF DISPLAY
23:34:16 CYEM0099E 23.34.16 SIM DASD MODERATE ALERT
20:10:25 CYEM0099E 20.10.25 OVERRUN
13:48:54 CYED0012W MODULE QUEUE FOR MAY BE STALL
输出应该是:
pattern1:
13:48:54 CYED0012W MODULE QUEUE FOR MAY BE STALL
patter2:
20:10:25 CYEM0099E 20.10.25 OVERRUN
pattern3:
23:34:16 CYEM0099E 23.34.16 SIM DASD MODERATE ALERT
patter4:
08:12:19 SNAP0003I 08.12.20 CPU-A SS-BSS SSU-BSS IS-3
08:12:19 PSW-07151000 80000000 00000000 2967561E
08:12:19 PGM-BA13 CODE-U00BA1302 TERM-000000A
08:12:19 END OF DISPLAY
我用过这个代码
value=["STALL","OVERRUN"]
with open('SNAP.txt', mode='r') as infile:
for line in infile:
if value in line:
print(line)
这里不需要模式。 "substring" in "string"
或 "substring" in line
和 line.endswith("suffix")
应该可以正常工作。