已经入手 E61i !!!
地址本数据来自古老的 3650,格式见用 Python 备份 S60 的地址本。
开发过程中碰到这么几个问题:
1. 第一次安装 1.3.x 高版本的 PyS60,一共需要两个 sis 包,分别是 PythonForS60_1_3_21_3rdEd_selfsigned.SIS 和 PythonScriptShell_1_3_21_3rdEd_selfsigned.SIS。一开始不知道还需要 PythonScriptShell,找了半天 python 图标,还以为自己弄错了。另外我一开始安装在卡上,程序无法执行,删除后安装到内存上就好了。
2. PyS60 的从 UTF-8 字符串 decode 成 unicode 有问题。单独的“张”这个字是无法 decode 的,但完整的名字或哪怕是“张\n”都可以正确 decode。还没有测试是不是单独的汉字都有这个 bug;反正是为了这个问题调试了半天。
3. 从文档所说,contacts.open(mode = 'n') 应该是创建一个全新的、空白的联系人数据库。实际上不是这样,效果和 mode = 'c' 是一致的。可能对于系统的联系人数据库的确是有这个限制。
-
import contacts
-
f = open("E:\contacts.txt")
-
db = contacts.open(mode = 'c')
-
n = 1
-
count = 0
-
for line in f:
-
count = count + 1
-
if n == 1:
-
n = 0
-
contact = db.add_contact()
-
title = line.split(", ")
-
#print title[0], title[1].decode('UTF-8')
-
else:
-
if line.strip() == "":
-
contact.commit()
-
n = 1
-
else:
-
info = line.split(", ", 1)
-
try:
-
v = info[1].decode('UTF-8').strip()
-
#print info[0], v
-
contact.add_field(info[0], v)
-
except:
-
print 'add_field', title[0]
-
break
-
-
f.close()
Topic:
技术
最新评论