发出在Python中的日志文件中读/写特定行

时间:2012-01-05 13:03:14

标签: python file-io

我正在尝试在日志文件中打印包含单词的行。

我做了一些研究,但尚未找到实现这一目标的好方法。

我目前有这段代码:

FileInput = open(FILE, "r", encoding='utf-8')

for line in FileInput:
    if "DATA: " in line:
        print line

环顾四周之后,这似乎是大多数人都这样做的方式,但我收到以下错误:TypeError:强制转换为Unicode:需要字符串或缓冲区,找到NoneType。

我知道“DATA:”的设置长度,并且该行以十六进制值0A结束。

3 个答案:

答案 0 :(得分:1)

您的FILE变量不包含正确的字符串(我们可以看到它的值吗?在尝试打开文件并在此处粘贴结果之前,您可以执行“print(FILE)”),或者文件不是以与utf-8兼容的方式编码。尝试在一个好的编辑器(如jEdit或Notepad ++)中打开它,看看编辑器告诉你的是什么,然后指定编码而不是utf。

答案 1 :(得分:0)

似乎你需要使用

import codecs
f = codecs.open(FILE, encoding='utf-8', mode='r')

看看Unicode HOWTO

答案 2 :(得分:0)

试试这个:

FileInput = open(FILE, "r")
for line in FileInput:
    if "DATA: " in line:
        print(line)