オルタナティブ・ブログ > まあまあ元気になる話 >

IT業界での少し気分がアップする出来事、心持ち役立つこと、ややイイ話

初めてのPython

»

今やっているお仕事で、ログの集計作業が必要になりました。
表、グラフにまとめるのですが、ログの元データが20Gもあり、到底、Excelでは、処理できません。
必要な数字を抜粋し、ある程度、集計してから、Excelに取り込むことにしました。
問題はどうやって、それをやるか、です。
ログは普通のテキストデータです。
日毎に、マシンごとに、ファイル、ディレクトリが分かれています。

スクリプト言語で簡単なツールを作ることにしました。
シェル、Java、Perl・・?
データの抽出は、文字列をキーにしてやるのですが、文字列の扱いやすさだと、Perlかしら・・。
昔、プロバイダーの仕事をやっていたときに、自分で書いたPerlのソースを引っ張り出してきたりしました。
うーん、自分で書いたのに、読みにくい・・。

結局、Pythonで書くことにしました。
前々から興味があったので、使ってみたい、というのが理由です。
不思議とRubyは思いつきもしませんでした。
「TVドラマで、ハッカーがPythonを使っていた」という話を聞いて、ササッと格好よくプログラミングをするのにはPython、なんてイメージが
ついてしまっていたのかも知れません。
Pythonは、簡易なツールがサッと書けるだけでなく、オブジェクト指向による大規模なWebシステムや商用サイトも構築できます。
Google、Yahoo!、YouTubeなどが採用していることでも有名ですね。

早速、ネットで、Pythonの入門書を調べました。
定番の「みんなのPython」のレビューがいまいち評価が低かったので、「初めてのPython」を購入しました。
本当はどちらの本が良かったのか、良くわかりません。
「初めてのPython」の内容に特に不満はありませんが、
・リファレンス的には使えない(著者もそう書いてます)
・重くて持ち運びには不便(腕力はつきます)
なので、その点は注意が必要だと思います。

さて、購入した本の内容が思ったよりもボリュームがあったので、すべてを読んでから、プログラミングをやるのではなく、読み進めながら、ツールを作って行きました。
本を読むのは、電車の中と自宅、ツールを作るのは会社、とパラレルでやったのでした。
結果的に、例題を一歩進めて、ツールに反映する、みたいな感じになり、なんか、継ぎ足し継ぎ足しで増築を重ねる温泉旅館のようで、人にはとても進められない手法ですが、そんなやり方でも、結果的に、ちゃんと目的のツールが出来たのは、Pythonの柔軟性のおかげかも知れません。

「シンプル」で「習得が容易」と言われているだけあって、学習する上で、特に難しいところはありませんでした。
コロン 「 : 」 とインデントとでブロックを定義することに慣れず、何度もエラーを出したりしましたが・・。
一つ、初心者には難しいかな、と思った点は、
リストの上書きのところ、ですね。
例えば、

a = {1, 2, 3}
b = a
a[0] = 4

とすると、リストa の最初の要素が上書きされ、
{4, 2, 3}

になります。
リストaとリストbは、同じオブジェクトを参照しているので、リストb の要素も、
{4, 2, 3}

に変わります。
これは注意が必要です。
a = 4

とすると、リストb の要素は変わらず、そのままなので、余計ややこしいかも知れません。
このときは、a に対応するオブジェクトは、整数に変わってしまい(上書きではなく別のものになり)、b は元のリストを参照したまま、なんですね。
b = a

をリストのコピーのように思っていた、わたしは、最初、この違いのおかげで、思った結果が得られませんでした。
悩み始めたときに(正確には翌朝の電車の中で)、その章のところをどんぴしゃで読んだので、それほどハマらずに済んだのでした。

でも、皆さんには、ちゃんと本を読み終わってから作ることをお勧めします。

P.S.
リストをコピーしたいときは、

b = a[:]

とすればできます。


Comment(0)