Я играл с Python, пытаясь написать скрипт для сканирования каталога для определенных файлов, поиска определенных ключевых слов и сохранения строк, в которых эти ключевые слова отображаются в новом файле. Я придумал это;Python text parsing and saving as html
import sys, os, glob
for filename in glob.glob("./*.LOG"):
with open(filename) as logFile:
name = os.path.splitext(logFile.name)[0]
newLOG = open(name + '_ERROR!'+'.LOG', "w")
allLines = logFile.readlines()
logFile.close()
printList = []
for line in allLines:
if ('ERROR' in line) or ('error' in line):
printList.append(line)
for item in printList:
# print item
newLOG.write(item)
Это все хорошо, но я думал, что я хотел бы попробовать вместо экономии этот новый файл как HTML оборачивать все в тегах прав (HTML, голова, тело ...), так что, возможно, я мог бы изменить шрифт цвет ключевых слов. Пока это выглядит так;
import sys, os, glob
for filename in glob.glob("./*.LOG"):
with open (filename) as logFile:
name = os.path.splitext(logFile.name)[0]
newLOG = open(name + '_ERROR!'+'.html', "w")
newLOG.write('<html>')
newLOG.write('<head>')
newLOG.write('<body><p>')
allLines = logFile.readlines()
logFile.close()
printList = []
for line in allLines:
if ('ERROR' in line) or ('error' in line):
printList.append(line)
for item in printList:
# print item
newLOG.write('</html>')
newLOG.write('</head>')
newLOG.write('</body><p>')
newLOG.write(item)
Теперь проблема, я новичок в этом, и я все еще пытаюсь понять, как работать с углублениями и петли .. Потому что мои HTML-теги, добавленными внутри цикла, каждая строка имеет <html>
, <head>
& <body><p>
бирка вокруг них, и это просто выглядит неправильно. Я понимаю проблему и пытаюсь переписать вещи так, что теги применяются вне цикла, но я не имел большого успеха.
Может ли кто-нибудь показать мне лучший способ получить имя файла текущего файла, создав новый файл + добавить его, поскольку я думаю, что именно поэтому я получаю ошибки обработки файлов при попытке изменить, как все это работает ,
Благодаря
Привет, спасибо за помощь, к сожалению, я еще не совсем там. Я получил ошибку, связанную с EOL, которая была исправлена путем исправления цитаты в последней строке, но теперь я получаю сообщение об ошибке в строке os.path, в которой лог-файл не определен (понятно), затем я попытался разделить строку 7 и поставить "с открытым (имя файла, 'r') как logFile" до "name + os.path ...", но это, в свою очередь, вызывает ошибку на оставшейся строке; "open (name + '_ERROR! .html', 'w') как outfile:" как недопустимый синтаксис =/ – Skyone
Исправлена ошибка (извините за это) - попробуйте обновленный ответ. – Owen
Блестяще благодарю вас! Теперь мне просто нужно выяснить, как обернуть ключевые слова в правильные теги, чтобы их разный цвет. Боковой вопрос; Это что-то вроде этого; ключевое слово лучший способ пойти или мне пойти с css. Еще раз спасибо. – Skyone