郵便番号表
http://www.post.japanpost.jp/zipcode/dl/kogaki.html
郵便番号/住所の全国データをDLしてみる。
こんな感じ↓。
01101,"060 ","0600000","ホッカイドウ","サッポロシチュウオウク","イカニケイサイガナイバアイ","北海道","札幌市中央区","以下に掲載がない場合",0,0,0,0,0,0 01101,"064 ","0640941","ホッカイドウ","サッポロシチュウオウク","アサヒガオカ","北海道","札幌市中央区","旭ケ丘",0,0,1,0,0,0
「県コード、旧郵便番号、新番号、読み1、読み2、読み3、漢字1、漢字2、漢字3、(フラグ6つ)」
…となってるらしい。
フツーに利用しようとして、必要なのは 2,6,7,8 番目のデータだけだな。
ということで、こちょこちょと弄って、2,6,7,8 番目のデータだけを抽出、デフォルトのデータはでか過ぎ(12MB)なので、郵便番号の先頭の数字毎にファイルを10個に分割してみた。
$out = nil ARGF.each do |l| a = l.split(/,/) a[0].sub!(/^./,'') $cityCode = $& p = P.index(a[1])+a[2] shi[p] = a[1] if $preCode != $cityCode $out = File.open($cityCode, "w") end $out.printf "%s,%s,%s\n",a[0], P.index(p), a[3] $preCode = $cityCode.dup end
こんな↑感じで。
281315 Dec 20 18:33 0 114668 Dec 20 18:33 1 108584 Dec 20 18:33 2 186744 Dec 20 18:33 3 210139 Dec 20 18:33 4 217649 Dec 20 18:33 5 365382 Dec 20 18:34 6 221648 Dec 20 18:34 7 224409 Dec 20 18:34 8 421742 Dec 20 18:34 9 12149889 Nov 26 17:13 ken_all.csv
12MBのデータが、100kB〜400kBのデータに分割できた。
…ふむふむ。郵便番号って、9で始まる住所が一番多いのか。