ちょうど一週間前からプログラミング言語で超人気のPythonを独習し始めた。まだまだ、深いところまで理解できた訳ではないが、大体様子が分かったので簡単にまとめてみたいと思う。
以前のブログ、
百論簇出:(第158回目)『IT時代の知的生産の方法(その6)』
に書いたように、私はそもそもプロのプログラマーとして生活をしていた。当時は、かなりの規模(C言語で30万行程度のソースコード)のシステムを幾つも設計、製作、バグつぶし、メンテナンス等、ソフト開発の現場を網羅的に経験した。現在でも、いろいろな些細なデータ変換なのために小さなプログラム(Windows上の batch、 AWK)であれば、毎日のように書いている。たまにかつてC言語で書いたかなり複雑な処理のバージョンアップやバグ取りをすることもある。
そういった経歴があるので、現在では、C言語やJavaより高くなったPythonの人気に「一体Pythonのどういった点が人気の原因なんだろうか?」と、ここ数年ずっと関心を持ってきた。しかし、WebのPython紹介記事や、本屋で立ち読みするPython入門本をパラパラとめくっただけでは、私の疑問に答えてくれる記述に出会わなかった。しかし、たまたま来春から某大学でプログラミングを教えるので、ようやく重い腰をあげてPythonを本格的に調べ出した次第だ。
![](https://blogimg.goo.ne.jp/user_image/16/05/83760bd4df324ad5f4ebfc2b341e901c.jpg)
一週間経って、ある程度Pythonの書き方が分かったので、腕試しにある程度実用的なプログラムを書いてみることにした。それは、PPTXフォーマットのパワーポイントから文字列を抽出するプログラムである。文字列を抽出したあとは、当然のことながら、検索できるようにしたいということだ。(以下Windows システムに絞って話を進める。)通常、自分のパソコン内を検索するといえば、たいていWindowsの検索ツールを使うであろう。検索語を入れると、時間はかかるが結果は表示される。(【1】はエクスプローラーを使う方法、【2】はPowerShellを使う方法)
【1】Windows 10 の検索でファイル内の文字も検索する方法
【2】Windowsでテキストファイルの内容をPowerShellで検索する方法
さて、日常業務で作成する書類と言えば、Microsoft Officeで作る、 doc(docx)、xls(xlsx)、ppt(pptx)やテキスト(text)ファイルであろう。
当然のことながら、これら作成したファイルから情報を検索することが必要だ。こういうと、「Microsoft Officeで作成したファイルはそれぞれのアプリケーション(ワード、エクセル、パワーポイント)でできるから十分だ」と考える人がほとんどだろう。しかし、1個のファイルならともかく、多くのフォルダーにまたがり、数十個のファイルに対して横断的に検索するのは、人手ではとてもじゃないが、無理であろう。そこで必要なのが、このような状況で使える検索ソフトだ。以前(2011年まで)は、「Google デスクトップ」というソフトでこのようなことが可能であったが、現在はサービス修了となっている。
このような状況に対して、無料か有料は別として、自分の目的に合ったWindows上で動く検索アプリケーションを見つけて導入しようとするだろう。見つかるソフトはたいていはユーザー受けするGUIソフトである。つまり、マウスで操作する画面のついた一般的なソフトだが、これはプロの目からみれば極めて「かったるい」ソフトだ。現在、プロのプログラマーで
UNIXを使った経験のない人は少ないであろうが、UNIXの大きな特徴は、現在のWindowsや(多分)Macにも導入されているパイプという概念である。一つのプログラムの出力が、次のプログラムの入力ともなるので、プラモデルのレゴのように次々と部品を連結して連続技で、自動的に大規模な処理をすることが可能となる。残念なことにGUIではこのような連続技をすることが出来ないのである!つまり、一つの処理が終わる都度、出力ファイルを手動で次の処理の入力ファイルとして別のプログラムに投入するしかないのである。大規模な処理が自動的にはできなく、常に人間がちょこまかとプログラムの処理のための下働きをしないといけないのである。つまり、コンピュータが主人で、あなたが奴隷であるわけだ。
私の実現したいのは「コンピュータに自動で、複数のフォルダーを横断的に検索して、所望の複数の検索ワードにヒットするファイルを探し出す」ことである。テキストファイルに対しては、UNIXのツールである grep を改造すればすんなりいくが(といっても、これはこれで一苦労なのだが!)、Microsoft Officeで作成したファイルはそれなりのソフトが必要だ。今回、このソフトをPythonでプログラミングしたのである。
(続く。。。)
以前のブログ、
百論簇出:(第158回目)『IT時代の知的生産の方法(その6)』
に書いたように、私はそもそもプロのプログラマーとして生活をしていた。当時は、かなりの規模(C言語で30万行程度のソースコード)のシステムを幾つも設計、製作、バグつぶし、メンテナンス等、ソフト開発の現場を網羅的に経験した。現在でも、いろいろな些細なデータ変換なのために小さなプログラム(Windows上の batch、 AWK)であれば、毎日のように書いている。たまにかつてC言語で書いたかなり複雑な処理のバージョンアップやバグ取りをすることもある。
そういった経歴があるので、現在では、C言語やJavaより高くなったPythonの人気に「一体Pythonのどういった点が人気の原因なんだろうか?」と、ここ数年ずっと関心を持ってきた。しかし、WebのPython紹介記事や、本屋で立ち読みするPython入門本をパラパラとめくっただけでは、私の疑問に答えてくれる記述に出会わなかった。しかし、たまたま来春から某大学でプログラミングを教えるので、ようやく重い腰をあげてPythonを本格的に調べ出した次第だ。
![](https://blogimg.goo.ne.jp/user_image/16/05/83760bd4df324ad5f4ebfc2b341e901c.jpg)
一週間経って、ある程度Pythonの書き方が分かったので、腕試しにある程度実用的なプログラムを書いてみることにした。それは、PPTXフォーマットのパワーポイントから文字列を抽出するプログラムである。文字列を抽出したあとは、当然のことながら、検索できるようにしたいということだ。(以下Windows システムに絞って話を進める。)通常、自分のパソコン内を検索するといえば、たいていWindowsの検索ツールを使うであろう。検索語を入れると、時間はかかるが結果は表示される。(【1】はエクスプローラーを使う方法、【2】はPowerShellを使う方法)
【1】Windows 10 の検索でファイル内の文字も検索する方法
【2】Windowsでテキストファイルの内容をPowerShellで検索する方法
さて、日常業務で作成する書類と言えば、Microsoft Officeで作る、 doc(docx)、xls(xlsx)、ppt(pptx)やテキスト(text)ファイルであろう。
当然のことながら、これら作成したファイルから情報を検索することが必要だ。こういうと、「Microsoft Officeで作成したファイルはそれぞれのアプリケーション(ワード、エクセル、パワーポイント)でできるから十分だ」と考える人がほとんどだろう。しかし、1個のファイルならともかく、多くのフォルダーにまたがり、数十個のファイルに対して横断的に検索するのは、人手ではとてもじゃないが、無理であろう。そこで必要なのが、このような状況で使える検索ソフトだ。以前(2011年まで)は、「Google デスクトップ」というソフトでこのようなことが可能であったが、現在はサービス修了となっている。
このような状況に対して、無料か有料は別として、自分の目的に合ったWindows上で動く検索アプリケーションを見つけて導入しようとするだろう。見つかるソフトはたいていはユーザー受けするGUIソフトである。つまり、マウスで操作する画面のついた一般的なソフトだが、これはプロの目からみれば極めて「かったるい」ソフトだ。現在、プロのプログラマーで
UNIXを使った経験のない人は少ないであろうが、UNIXの大きな特徴は、現在のWindowsや(多分)Macにも導入されているパイプという概念である。一つのプログラムの出力が、次のプログラムの入力ともなるので、プラモデルのレゴのように次々と部品を連結して連続技で、自動的に大規模な処理をすることが可能となる。残念なことにGUIではこのような連続技をすることが出来ないのである!つまり、一つの処理が終わる都度、出力ファイルを手動で次の処理の入力ファイルとして別のプログラムに投入するしかないのである。大規模な処理が自動的にはできなく、常に人間がちょこまかとプログラムの処理のための下働きをしないといけないのである。つまり、コンピュータが主人で、あなたが奴隷であるわけだ。
私の実現したいのは「コンピュータに自動で、複数のフォルダーを横断的に検索して、所望の複数の検索ワードにヒットするファイルを探し出す」ことである。テキストファイルに対しては、UNIXのツールである grep を改造すればすんなりいくが(といっても、これはこれで一苦労なのだが!)、Microsoft Officeで作成したファイルはそれなりのソフトが必要だ。今回、このソフトをPythonでプログラミングしたのである。
(続く。。。)
※コメント投稿者のブログIDはブログ作成者のみに通知されます