これまでWord、PDF、Excelファイルをgrep検索するプログラムを紹介してきました。今回は1つのプログラムでこれらすべてのファイルをgrep検索するプログラムを紹介します。つまり、これまでのプログラムを1つにまとめてみたということです。ただ1つにまとめただけでなく、テストファイル(txt)もgrep検索できるようにしてあります。

使い方

検索ボックスの下に検索対象としたいファイルのプログラム(Word, Excel, PowerPoint, PDF, テキスト)をチェックボックスで指定できるようにしてあります。それ以外については以前のプログラムと同じ使い方ですので、そちらを参照してください。

必要モジュール

すでに紹介してきたように以下のモジュールをインストールする必要があります。

また今回、初期設定ファイル(iniファイル)を使っているので以下のモジュールも必要になります。

ソースコード

プログラムの簡単な説明

23~45行目:検索結果を格納するクラスを定義しています。

Resultクラス:Word、PDF、テキストファイル用の結果クラス
ResultPptxクラス:PowerPointファイルの結果クラス
ResultExcelクラス:Excelファイルの結果クラス

140~171行目:configparserモジュールを用いて「config.ini」という初期設定ファイルを読み込み、Word、Excel、PowerPoint、PDF、テキストエディタのパスを指定しています。「config.ini」がない場合はデフォルトのパスを指定しています。

config.iniは以下のようなファイルで、各プログラムについて変数Pathに実行ファイルの場所を指定しています。

277~299行目:globを使ってファイルリストを読み出し、拡張子をチェックして、各ファイルタイプの処理に分岐させています。それぞれの処理内容は以前に紹介していますので、そちらをご覧ください。

拡張子がdocxの場合は、321行目にあるprocess_files_docxメソッド、
拡張子がxlsxの場合は、339行目にあるprocess_files_xlsxメソッド、
拡張子がpptxの場合は、363行目にあるprocess_files_pptxメソッド、
拡張子がpdfの場合は、404行目にあるprocess_files_pdfメソッド、
拡張子がtxtの場合は、442行目にあるprocess_files_txtメソッドに飛んでいます。