読者です 読者をやめる 読者になる 読者になる

本当は怖い情報科学

情報系大学院生の趣味&実益ブログ。

Gmailの連絡先をdocomoのガラケーのアドレス帳に転送

注:この記事は、プログラミングの知識がある人向けです(^ω^)

毎月の通信費をケチって、Xperiaからガラケーに機種変してWimaxとの2台体制にしてから長らく経つが、Gmailのアドレス帳を転送せずに使っていたので不便だった(それで生活が成立してしまうところが悲しい!)

Gmailのアドレス帳を単純にvcfフォーマットでエクスポートしてメールに添付して転送すれば良いのだが、それだと読み仮名が反映されない。そこで、全ての情報を含んでいる google.csv をダウンロードし、それをスクリプトで処理してdocomoのvcf形式に変更した。難しいところは無くて、ひたすらフォーマットを調べて変換するというただ単に面倒な作業なのだが、思い立って「えいや」でやった結果が以下。

まず、Gmailの「連絡先」の画面から「その他→エクスポート」を選択する。次に「エクスポート形式」は「Google CSV 形式」。これで、google.csvというファイルがダウンロードされる。次に、Pythonで変換スクリプトを準備する。20分ほど時間がかかるので、できたものがこちら↓にあります。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys,os,re
import string

def hira2kata(str):
    hira = [unichr(c) for c in range(ord(u'あ'), ord(u'ん')+1)]
    kata = [unichr(c) for c in range(ord(u'ア'), ord(u'ン')+1)]

    for i,c in enumerate(hira):
        str = str.replace(c, kata[i])

    return str

# skip the first line
raw_input()

while True:
    try:
        line = raw_input().decode('utf-8')
        c = line.split(",")
        print "BEGIN:VCARD"
        print "VERSION:3.0"
        print "FN:" + c[0]
        print "N:%s;%s;;;" % (c[3], c[1])
        print "X-PHONETIC-FIRST-NAME:%s" % c[7]
        print "X-PHONETIC-LAST-NAME:%s" % c[5]
        print "SOUND;X-IRMC-N;CHARSET=SHIFT_JIS:%s%s" % (hira2kata(c[7]),hira2kata(c[5]))
        print "SORT-STRING:%s%s" % (hira2kata(c[7]), hira2kata(c[5]))
        print "EMAIL;TYPE=INTERNET:%s" % c[28]

        phone = c[36].replace('-', '').replace(' ::: ', ',')
        if re.match(r'^(090|080)', phone):
          print "TEL;TYPE=CELL:%s" % phone
        elif re.match(r'^\d+', phone):
          print "TEL;TYPE=HOME:%s" % phone

        groups = re.sub(r' ::: ', ",", c[26])
        print "CATEGORIES:%s" % groups
        print "END:VCARD"
    except EOFError:
        break

このconvert.pyを使って作業します。コマンドライン

$ nkf -w google.csv| python convert.py | nkf -s -Lw -c -Z4 > converted.vcf

として、これをメールでガラケーにメール添付で送信すれば登録できる。簡単でしょう?

【広告】