我有几百个日志文件,我需要解析搜索文本字符串。我希望能够做的是运行Python脚本来打开当前文件夹中的每个文件,解析它并使用original_name_parsed_log_file.txt将结果记录在一个新文件中。我让脚本处理单个文件,但现在我在编写目录中的所有文件时遇到了一些问题。
以下是我到目前为止所做的,但它没有工作。无视第一个def ...我正在玩改变字体颜色。
import os
import string
from ctypes import *
title = ' Log Parser '
windll.Kernel32.GetStdHandle.restype = c_ulong
h = windll.Kernel32.GetStdHandle(c_ulong(0xfffffff5))
def display_title_bar():
windll.Kernel32.SetConsoleTextAttribute(h, 14)
print '\n'
print '*' * 75 + '\n'
windll.Kernel32.SetConsoleTextAttribute(h, 13)
print title.center(75, ' ')
windll.Kernel32.SetConsoleTextAttribute(h, 14)
print '\n' + '*' * 75 + '\n'
windll.Kernel32.SetConsoleTextAttribute(h, 11)
def parse_files(search):
for filename in os.listdir(os.getcwd()):
newname=join(filename, '0_Parsed_Log_File.txt')
with open(filename) as read:
read.seek(0)
# Search line for values if found append line with spaces replaced by tabs to new file.
with open(newname, 'ab') as write:
for line in read:
for val in search:
if val in line:
write.write(line.replace(' ', '\t'))
line = line[5:]
read.close()
write.close()
print'\n\n'+'Parsing Complete.'
windll.Kernel32.SetConsoleTextAttribute(h, 15)
display_title_bar()
search = raw_input('Please enter search terms separated by commas: ').split(',')
parse_files(search)
答案 0 :(得分:1)
这一行错了:
newname=join(filename, '0_Parsed_Log_File.txt')
使用:
newname= "".join([filename, '0_Parsed_Log_File.txt'])
join
是一个字符串方法,需要加入字符串列表