我不知道我犯了什么小错误,但我觉得这里有一个简单的解决方案,我没有得到。从日志文件中,我试图只读取以“start”结尾的行。每行都有很多信息,所以我简化了以下内容: “(。*)启动$”,我认为这是正确的 字符串的示例是:
05/06/2013 12:06:58 AM | null | com.skldfjs : start
import pandas as pd
s=pd.read_csv('Log_file.csv')
s
import re
items=re.findall("(.*)start$",s,re.MULTILINE)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Anaconda\lib\re.py", line 177, in findall
return _compile(pattern, flags).findall(string)
<b>TypeError: expected string or buffer</b>
有谁知道如何解决这个或为什么会发生这种情况? 谢谢! 凯尔
答案 0 :(得分:0)
由于pandas.read_csv()返回一个非字符串对象,而不是类似excel的文件,因此发生此错误。
由于我从未使用过熊猫,因此无法提供更多信息。但是,如果没有绝对需要的pandas,您可以尝试将该文件作为纯文本文件读取,然后使用re.findall()来解析它。
with open("file.csv") as f:
content = f.read()
regex = r"(.*)start$"
items = re.findall(regex, content, re.MULTILINE)