在日志文件中查找字符串和 return 个额外字符
Find string in log files and return extra characters
如何让 Python 遍历目录并在该目录中的每个文件中找到特定的字符串,然后输出找到的内容的摘要?
我想在长文件中搜索以下字符串:
FIRMWARE_VERSION = "2.15"
只是,每个文件中的固件版本可以不同。所以我希望日志文件报告它找到的任何版本。
import glob
import os
print("The following list contains the firmware version of each server.\n")
os.chdir( "LOGS\" )
for file in glob.glob('*.log'):
with open(file) as f:
contents = f.read()
if 'FIRMWARE_VERSION = "' in contents:
print (file + " = ???)
我想我可以使用类似下面的东西来 return 额外的字符,但它不起作用。
file[:+5]
我希望输出看起来像这样:
server1.web.com = FIRMWARE_VERSION = "2.16"
server2.web.com = FIRMWARE_VERSION = "3.01"
server3.web.com = FIRMWARE_VERSION = "1.26"
server4.web.com = FIRMWARE_VERSION = "4.1"
server5.web.com = FIRMWARE_VERSION = "3.50"
关于如何执行此操作有什么建议吗?
您可以使用 regex
来抓取文本 :
import re
for file in glob.glob('*.log'):
with open(file) as f:
contents = f.read()
if 'FIRMWARE_VERSION = "' in contents:
print (file + '='+ re.search(r'FIRMWARE_VERSION ="([\d.]+)"',contents).group(1))
在这种情况下 re.search
就可以了!根据以下模式搜索文件内容:
r'FIRMWARE_VERSION ="([\d.]+)"'
在两个双引号之间找到一个浮点数!您也可以使用以下匹配两个双引号之间 FIRMWARE_VERSION
之后的任何内容。
r'FIRMWARE_VERSION =(".*")'
如何让 Python 遍历目录并在该目录中的每个文件中找到特定的字符串,然后输出找到的内容的摘要?
我想在长文件中搜索以下字符串: FIRMWARE_VERSION = "2.15"
只是,每个文件中的固件版本可以不同。所以我希望日志文件报告它找到的任何版本。
import glob
import os
print("The following list contains the firmware version of each server.\n")
os.chdir( "LOGS\" )
for file in glob.glob('*.log'):
with open(file) as f:
contents = f.read()
if 'FIRMWARE_VERSION = "' in contents:
print (file + " = ???)
我想我可以使用类似下面的东西来 return 额外的字符,但它不起作用。
file[:+5]
我希望输出看起来像这样:
server1.web.com = FIRMWARE_VERSION = "2.16"
server2.web.com = FIRMWARE_VERSION = "3.01"
server3.web.com = FIRMWARE_VERSION = "1.26"
server4.web.com = FIRMWARE_VERSION = "4.1"
server5.web.com = FIRMWARE_VERSION = "3.50"
关于如何执行此操作有什么建议吗?
您可以使用 regex
来抓取文本 :
import re
for file in glob.glob('*.log'):
with open(file) as f:
contents = f.read()
if 'FIRMWARE_VERSION = "' in contents:
print (file + '='+ re.search(r'FIRMWARE_VERSION ="([\d.]+)"',contents).group(1))
在这种情况下 re.search
就可以了!根据以下模式搜索文件内容:
r'FIRMWARE_VERSION ="([\d.]+)"'
在两个双引号之间找到一个浮点数!您也可以使用以下匹配两个双引号之间 FIRMWARE_VERSION
之后的任何内容。
r'FIRMWARE_VERSION =(".*")'