如何让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 + " = ???)
我以为我可以使用类似下面的内容来返回额外的字符,但它不起作用。
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"
关于我如何做到这一点的任何建议?
答案 0 :(得分:1)
您可以使用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 =(".*")'