0

私が犯している小さな間違いはわかりませんが、私が得ていない簡単な解決策がここにあると感じています。ログ ファイルから、「start」で終わる行だけを読み取ろうとしています。各行には多くの情報があるため、正しいと思われる "(.*)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>

これを修正する方法、またはなぜこれが起こっているのか誰かが知っていますか? ありがとうございました!ケルシー

4

1 に答える 1

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)
于 2013-10-04T16:25:59.377 に答える