Python读取日志文件并获取包含特定单词的行

Jam*_*s H 1 python

我有日志文件(以YYMMDD格式命名),我想创建一个脚本,只从文件中获取重要信息(如包含"O:NVS:VOICE"的行).我之前从未使用过Python,所以请帮忙!

Gar*_*ber 17

这应该让你开始很好:

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)
Run Code Online (Sandbox Code Playgroud)

它绝不是完美的,例如没有异常处理或模式匹配,但您可以很容易地将它们添加到它中.查看正则表达式,这可能比短语匹配更好.如果您的文件非常大,请逐行阅读以避免MemoryError.

输入文件:

This line is super important!
don't need this one...
keep me!
bla bla
not bothered
ALWAYS include this test line
Run Code Online (Sandbox Code Playgroud)

输出:

['This line is super important!\n', 'keep me!\n', 'ALWAYS include this test line']
Run Code Online (Sandbox Code Playgroud)

注意:这是Python 3.3.如果使用2.7,则需要修改print语句(删除括号).

  • 您可以通过循环遍历文件对象而不是调用readlines来避免大文件的问题.只需在`with`中移动`for line in f`并摆脱`f.readlines()` (2认同)