Pythonのお勉強 Part62 (445レス)
前次1-
抽出解除 レス栞

163
(7): 2020/05/05(火) 12:44:32.20 ID:lrlqOn2p(1/3)調 AAS
フォルダ構成が複雑な、ものすごい膨大なlogファイルから、
特定のワードが含む行と、ファイル名を抽出したいのですが、
・サブフォルダを巡回して命令を実行する
・ファイル名のあとに、検索結果を出す
のやり方がわからず、躓いております。

参考になりそうなサンプルがあればご教示いただけますでしょうか。

test01.log
-----------------------------------
0501 問題ないよ
0501 Error!
|まちがってるよ
|まちがってるよ
0501 問題ないよ
-----------------------------------

このうち
・「Error」のある行
・| ではじまる行
を抜き出し、このような出力結果を希望しています。

test01.log
-----------------------------------
0501 Error!
|まちがってるよ
|まちがってるよ
-----------------------------------

「Find」「再帰的」「文字列」「検索」「Python」「テキストマイニング」などで検索をするも、これといった情報が得られず……
参考になりそうなURL、「こういうワードで検索しろ」などあればお願いします。
164
(1): 2020/05/05(火) 12:47:27.09 ID:hpwOcr6+(1)調 AAS
>>163
globモジュール
with open
f.readlines
strクラスのfindメソッド

一回公式のPythonチュートリアルを全てやってみることをお勧めする
166: 2020/05/05(火) 14:05:25.10 ID:3RO6WiLW(1)調 AAS
>>163
os.walk
os.path.walk
どっちかのドキュソ観れ
167
(1): 2020/05/05(火) 14:15:49.76 ID:uTsiWylk(1/2)調 AAS
>>163
grep使えって

出力フォーマットが気に入らないなら
ripgrep使うかgrep -lをループさせればいい

$ rg -n "^¥||Error" ./*.log
./test02.log
2:0501 Error!
3:|まちがってるよ
4:|まちがってるよ

./test01.log
2:0501 Error!
3:|まちがってるよ
4:|まちがってるよ
171
(1): 2020/05/05(火) 15:10:14.14 ID:93UQ4haG(1)調 AAS
>>163
「膨大な」と書いてあるのでpythonでやるのは速度的な面で躊躇する
他の人も書いているけど標準コマンドを使うのが速い
・Linux/macOSならgrep
・Windowsならfindstr

「フォルダ構成が複雑な」と書かれているのでサブフォルダまで検索するには
・grepの場合は-rオプション
・findstrの場合は/Sオプション
を付ける

何らかの理由でpython縛りなら
glob.glob
os.wak
のどちらかを使ってファイルリストを取得した上で、そのファイルに指定したキーワードが含まれるか確認する
175
(5): 2020/05/05(火) 16:29:06.07 ID:E9jCQTmY(1)調 AAS
>>163
外部リンク:ideone.com

組み込み関数やライブラリで同等の機能が用意されているにも関わらず正規表現書くのはやめてほしい
177: 163 2020/05/05(火) 17:41:03.01 ID:lrlqOn2p(2/3)調 AAS
たくさんのご返信ありがとうございます。

>>164
ありがとうございました。
ご推察の通り、Pythonは本を一冊読んだ程度の知識しかありません。
チュートリアル一通り試してみます。

>>165
ありがとうございます。
その二つのドキュメントも読み込んでみます。

>>167
ありがとうございます。
申し遅れておりましたが、Windowsユーザーです。
ただ、教えていただいたコマンドを調べてみると、
Windowsでもインストールすれば、ripgrepを扱えるみたいですね。

必ずしもPythonにこだわらなければならないわけでもないので、
(学習中だったので、使ってみたかった程度)
コマンドでの解決も検討してみます。

>>171
>>174
ありがとうございます。
必ずしもPythonでなくてもよいので、Grepやfindstrも調べてみます。
178: 163 2020/05/05(火) 17:41:16.65 ID:lrlqOn2p(3/3)調 AAS
>>175
ありがとうございます。
すごい! まさに私の理想通りの出力結果になりました。

自分なりにいただいたソースコードを調べて、勉強させていただきます。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.944s*