【发布时间】:2021-01-21 11:56:57
【问题描述】:
我在网上找到了一些代码,并试图用它从多个日志文件中提取任何包含错误一词的文本行。我能够读取路径中的文件并将它们输出到屏幕上,但实际上无法提取其中包含“错误”的行。
我从在线搜索中汇总的代码如下。运行代码时,会显示所有 .log 文件并创建输出文件,但会列出实际文件名而不是我需要的行。在我拥有的九个 .log 文件中,我应该收到 5 行包含错误的信息。我确实找到了从 PDF 中提取信息的信息,但从我在网上看到的情况来看,这与我正在尝试做的完全不同。
每月大约 4-5 次,我们手动搜索 10-50 个 .log 文件以查找错误,我希望能够将所有日志转储到一个文件夹中并运行 python 脚本以非常快速地找到错误.我是不是走错了路?
import os
# defining location of parent folder
BASE_DIRECTORY = '/pending/PHS'
output_file = open('/pending/PHS/output.txt', 'w')
output = {}
file_list = []
# scanning through sub folders
for (dirpath, dirnames, filenames) in os.walk(BASE_DIRECTORY):
for f in filenames:
if 'log' in str(f):
e = os.path.join(str(dirpath), str(f))
file_list.append(e)
for f in file_list:
print(f)
txtfile = open(f, 'r')
output[f] = []
for line in txtfile:
if 'error' in line:
output[f].append(line)
tabs = []
for tab in output:
tabs.append(tab)
tabs.sort()
for tab in tabs:
output_file.write(tab + '\n')
output_file.write('\n')
for row in output[tab]:
output_file.write(row + '')
output_file.write('\n')
output_file.write('----------------------------------------------------------\n')
【问题讨论】:
-
在 Google 上搜索“grep”
-
看起来您是在此处写入文件,而不是搜索/提取任何内容(“错误”除外),在这种情况下,
ack或grep会更容易
标签: python string file logging extract