青竹雑記帖(6代目)

テキスト処理をメインとしたIT解説をします。

文字だけで扱うコンピュータの世界(13):テキスト調理その1・郵便番号データのフィルタリング

承前

blog.aotake91.net

♪~(音楽)

ATK「きょうの料理」の時間です。今日はお手軽な一品として「郵便番号データのフィルタリング」を作りましょう。材料は次の4つです。

  • 郵便番号データ(全国版) …… 11.7MB
  • Python言語の処理系 …… 一式
  • テキストエディタ …… 1つ
  • お茶 …… 1杯(※八女茶か嬉野茶が良いとされる)

郵便番号データは、以下の過去記事を参考に入手してください。

blog.aotake91.net

テキストエディタはひとまずVisual Studio Codeにしておきましょう。Visual Studio Codeの設定は、「Python Visual Studio Code 設定」のような単語で検索するとよい情報が出てくるかもしれません。そしてPythonの環境構築は以下のPython情報サイト(公式と言っていい)を参考にしてください。……でも初っ端に「Pythonのインストール、必要ですか?」と書いてありますね。この点でこのサイトが素晴らしいことが分かります。いくらガイドがあるとはいえ環境構築は面倒なので、やみくもにインストールさせるのは自分も気が進みません。単にプログラミングを体験するのであれば、まず体験をすれば良いというのが私の持論です。ここからのことは初手でやると訳がわからなくなりますので、先に「ゼロからのPython入門講座」やっときますか。ではよろしゅう。

www.python.jp

www.python.jp

「もう入門したからはよ次やれ」

……本当にやりました? 人間不思議なもので、目で読むだけだと頭の中を素通りしてしまいます。世の中のあらゆることの学習にあたって、手で書くと覚えやすいという経験則があります。プログラムを紙に手で書くのは50年前に終わっていますので、ここはスマートにキーボードでプログラムを打ち込むところからやりましょう。するとなぜか覚えます。不思議なものです。

サンプルプログラム

ではいきなりですが、このプログラムを打ち込んでください。入門のところでさんざん手打ちしたと信じていますので、ここからはコピペでOKです。私はRuby派なので、下のプログラムはもしかしたらPython的でない書き方かもしれません。さらに、いろいろ説明を端折っていきなりヘンな書き方を多数投入しているので初学者には向きません。「ゼロからのPython入門講座」に戻ってください。

"""
chapter13.py
郵便番号データから、指定した住所の郵便番号一覧を取り出して表示する。
"""

with open('KEN_ALL.CSV') as f:
    for line in f:
        # 1行読み込んだデータを、カンマ記号で分けてリスト化する
        # その際、各フィールドの値を囲むダブルクォートを取り除く
        line_elements = line.replace('"', '').split(',')

        if line_elements[6] == '福岡県' and line_elements[7] == '小郡市':
            print("{} - {} {} {}".format(line_elements[2], line_elements[6],
                                         line_elements[7], line_elements[8]))

よくある質問(FAQ)

  • 質問1 福岡県小郡市ってどこ?
  • 回答1 私の故郷にして本拠地です。

よくわからない解説

どのような分野でも、一通りできるようになった段階では、初学者に教えることができないとされています。その理由のひとつは「一通りできるレベルでは、初学者がわからないことや、わからないところがわからない」点にあります。私は何にひっかかりがちかすべてを把握する免許皆伝覇王であると豪語したいところですが、あまりフカすと真の達人からボコられるのでやめます。

このプログラムは、郵便番号データファイルを開いて1行ずつ読み込みます。その際にカンマ記号でデータを区切って分け、さらにダブルクォートを取り除きます。その中から、6番目の列(最初の列は0番目です)に書かれている都道府県と、7番目の列に書かれている市区町村を調べ、条件に一致するものを取り出して画面に出力します。出力する項目は、郵便番号、都道府県、市区町村、市区町村名以下の地区・大字等地名です。

実行!

プログラムと、郵便番号データを同じフォルダに入れて、その画面で右クリックして、「Codeで開く」というのをクリックしてください。 環境構築が完了している Visual Studio Code であれば、次のような画面が出てきます。右上の横向き三角(再生ボタンみたいなもの)をクリックすると、プログラムが実行できます。

Visual Studio Codeの画面です。この画面の右上に実行ボタンがあります。

結果がたちどころに表示されました。プログラムで指定した通り、私の本拠地である福岡県小郡市の郵便番号一覧が出てきました。

今日はとりあえずこのへんで

検索条件の都道府県や市区町村を変えて遊んでみてください。もし多少プログラミングに慣れていたら、検索条件の列の追加や変更をしてみてください。

次回はこの続きをもう少しやりますか。別な話題に行くかもしれません。

あ、お茶のこと忘れてた

八女茶は福岡県八女市で産出されるお茶です。全国的には玉露で名高いです。嬉野茶は佐賀県嬉野市の特産です。最近西九州新幹線が開業しましたので、嬉野温泉駅で下車して遊びに行ってみてください。日本茶については次の2冊を勧めておきます。私も美味しくお茶を淹れられるわけではありませんが、抽出温度に気を配ると良いそうです。