- 17
- May
换手机了,最麻烦的是什么呢?当然是把联系人从一个手机转移至另一个手机,本来还好的,偏偏我是不喜欢把联系人存在SIM卡的(主要是功能有限)。
那我是怎么把联系人从BlackBerry上转移至G1的呢?用的是Python!
首先是基本原理:
- 在Windows下用“BlackBerry桌面管理器”,把联系人从黑莓中导出,导出形式是ASCII,而实际上这是csv的格式(之后要用Python来解析csv)
- 到Linux下,利用gdata这个Python库,写一个脚本,把联系人的姓名和手机号码解析出来,再创建至Google Contacts上。
- 第三步,G1(Android)上同步联系人,所有的联系人都已经自动到G1上去了。
这个过程很酷吧!利用到了Windows,Linux和Python,除了数据导出部分,其他全是脚本完成,自动的!
其他的不需要多说了,贴一下我的脚本源码吧,主要的技术是:解析CSV,Google Contacts的Python API的应用:
#!/usr/bin/python
import csv
import atom
import gdata.contacts
import gdata.contacts.service
def create_contact(client, name, phone):
contact = gdata.contacts.ContactEntry()
contact.title = atom.Title(text=name)
contact.phone_number.append(gdata.contacts.PhoneNumber(text=phone, rel=gdata.contacts.PHONE_MOBILE))
entry = client.CreateContact(contact)
if entry:
print 'Creation successful!'
print 'ID for the new contact:', entry.id.text
else:
print 'Creation fail!'
email = 'yourname'
password = 'yourpasswd'
gd_client = gdata.contacts.service.ContactsService()
gd_client.email = email
gd_client.password = password
gd_client.source = 'GoogleInc-ContactsPythonSample-1'
gd_client.ProgrammaticLogin()
reader = csv.DictReader(open('contacts.csv'))
for contact in reader:
name = contact['First Name']
phone = contact['Mobile Phone']
print 'Name: %s' % name
print 'Phone: %s' % phone
input = raw_input('>>> Create the contact (Y/N)?')
if input is 'N' or input is 'n':
print 'pass'
elif input is 'Y' or input is 'y' or input is '':
create_contact(gd_client, name, phone)
Python让生活更简单、更方便而且更有趣味啦!
另外,一旦拥有Android以后,所有的联系人信息都交给Google管理了,以后再也不用担心同步问题了!
哇塞 這個方法太帥了!我當初手機被NOKIA格了,聯系人通過網絡同步獲得哈哈 那也爽
很好的例子,学习一下。
黑莓上有google的同步软件,可以直接同步联系人,日历,任务。
请问谷歌系统手机能运行python吗?,方便不