У меня есть файлы журналов (названные в формате YYMMDD), и я хотел бы создать скрипт, который получает только важную информацию из файлов (например, строки, содержащие «O: NVS: VOICE "). Я никогда раньше не использовал Python, поэтому, пожалуйста, помогите!Python читает файлы журналов и получает строки, содержащие конкретные слова
ответ
Это поможет вам начать хорошо:
infile = r"D:\Documents and Settings\xxxx\Desktop\test_log.txt"
important = []
keep_phrases = ["test",
"important",
"keep me"]
with open(infile) as f:
f = f.readlines()
for line in f:
for phrase in keep_phrases:
if phrase in line:
important.append(line)
break
print(important)
Ни в коем случае не совершенны, например, нет обработки исключений или шаблон согласования, но вы можете добавить их к нему довольно легко. Посмотрите на регулярные выражения, которые могут быть лучше, чем сопоставление фразы. Если ваши файлы очень большие, прочитайте их по очереди, чтобы избежать MemoryError.
входного файла:
This line is super important!
don't need this one...
keep me!
bla bla
not bothered
ALWAYS include this test line
Выход:
['This line is super important!\n', 'keep me!\n', 'ALWAYS include this test line']
Примечание: Это Python 3.3. Вам потребуется изменить инструкцию печати (удалить скобки), если вы используете 2.7.
Вы можете избежать проблемы с большими файлами, зацикливаясь над файловым объектом, а не на вызовы readlines. Просто переместите свой 'for line in f' внутри' with' и избавьтесь от 'f.readlines()' –
Вы должны будете знать, как loop over files in a directory, regular expressions to make sure your log file format matches to file you are looping over, how to open a file, how to loop over the lines in the open file и how to check if one of those lines contains what you are looking for.
И вот какой-то код, чтобы вы начали.
with open("log.log" 'r') as f:
for line in f:
if "O:NVS:VOICE" in line:
print line
- 1. Python SeleniumExtract HREF, содержащие конкретные строки
- 2. Сопоставьте слова, содержащие конкретные символы
- 3. Синтаксический конкретные слова из строки
- 4. Снять конкретные слова из строки
- 5. Как искать строки, содержащие конкретные слова, а затем возвращать количество каждого слова?
- 6. Заменить конкретные слова в python
- 7. Строки поиска в списке, содержащие конкретные буквы в случайном порядке
- 8. Найти файлы, содержащие определенные слова - SublimeText2
- 9. Получить конкретные слова из строки C#
- 10. Найти файлы, содержащие Mutiple строки
- 11. Как собрать сообщения, содержащие конкретные слова от общедоступных пользователей Facebook?
- 12. Python читает определенные альтернативные строки
- 13. Найти строки, содержащие нужные мне слова
- 14. Regexp MySql- Только строки, содержащие два слова
- 15. Игнорировать строки, содержащие специальные слова (месяцы)
- 16. Возвращаемые строки, содержащие все слова в строке
- 17. SQL: найти строки, содержащие неожиданные слова
- 18. Соответствующие строки, не содержащие слова EMPTY
- 19. Снять конкретные слова/фразы из строки
- 20. Извлечение Конкретные слова из динамического источника строки
- 21. получить конкретные слова из строки, ORACLE
- 22. C++, если конкретные слова из строки
- 23. Задавать конкретные файлы, содержащие текст в определенном каталоге?
- 24. Выберите конкретные слова
- 25. Сменить конкретные слова строки на полужирный
- 26. Python редактировать конкретные слова текстового файла
- 27. Python- Удалить все слова, содержащие другие слова в списке
- 28. Получить конкретные слова в строке
- 29. Python не читает строки файла
- 30. получает первое слово строки и удаления слова из фактической строки
Нам нужно некоторое представление о том, что вы уже пробовали и где у вас проблемы. Вам нужна помощь в открытии файла? Разбор данных, которые есть? Печатать/записывать интересующую вас информацию? – thegrinner
ну, на самом деле, я только что начал свой проект в python, поэтому я все еще думаю о решении, я хотел бы получить некоторые идеи от людей, у которых есть опыт .. сценарий нацелен на то, чтобы получить подобное, что называет конкретные слова как i сказал, из файлов журнала, которые ежедневно генерируются сервером, а затем помещают их в базу данных mysql, поэтому я не знаю, как я могу получить строки, так как их много, и они создаются ежедневно. –