2017-05-22 3 views
-1

ログファイルのすべての行を読み込む小さなプログラムを構築しています。一致するものが見つかると、その行が出力されます。問題は、私は約20種類のログファイルがあり、それらはすべて同じフォルダにあります。フォルダ内のすべてのログファイルを解析し、検索した単語に一致する行を出力する方法はありますか?以下は私がこれまで持っているものの例ですが、何も印刷しません。スクリプトはreadlines()とsplit()を組み込むことができる必要があります単語+ pythonを検索するフォルダ内の複数のファイルを読み取る方法2.7

私が以下に示しているのはうまくいかないが、これは私の見た目に似ていると思われる。アドバイスを歓迎します。

def Preview(): 
    path = ('C:Users/kev/Desktop/test/*.log') 
    files = glob.glob(path) 
    files.readlines() 
    for line in files: 
     if "test_word" in line: 
      print line 

    Preview() 
+0

あなたのインデントがオフになっている...と 'line.readlinesは()' 'ただ...空に出line'をファイルを読み込み、ファイルハンドルになります。 –

+0

'dt.strptime'が' を返すので 'TextTime = dt.strptime(line.split()[3]、 '%H:%M:%S.%f')' 'time.struct_time '>'を 'str'" string "型と比較します。これは常に失敗します。 – davedwards

答えて

0

これはあなたのコードがどのように見えるべきかです:

def Preview(): 
    path = ('C:Users/kev/Desktop/test/*.log') 
    files = glob.glob(path) 
    for f in files: 
     f = open(f) 
     f = f.readlines(): 
     for line in f: 
      if "test_word" in line: 
      print line 
     f.close() 

Preview() 
+0

修正したコードに構文上の問題がいくつかありましたが、それでも機能しません。次のエラーが発生しました f = f.readlines() AttributeError: 'str'オブジェクトに 'readlines'属性がありません – user6534872

+0

ファイルを完全に開くことができました:)編集を試してください。 – zipa

+0

ありがとうございます! - 私はまた、このトリックをしたようなこの記事を見つけました。 (https://stackoverflow.com/questions/3110469/do-a-search-and-replace-across-all-files-in-a-folder-through-python) – user6534872

関連する問題