在nokia s60中使用python将收件箱中的内容导出保存为文本
由于手机收到139邮箱的邮件信息比较多,想把它删除,但是又不能全选后全部删除
所以使用python写了一个简单的程序读取收件箱的内容,并将其存储到指定位置
并且根据联系人的手机号码分别创建文件
【程序说明】
此程序是根据s60提供的python API实现
其中用到了inbox和contacts
1、程序取收件箱的所有短信,
2、遍历,针对每条短信,
3、通过contacts对象取出联系人的电话,
4、将短信内容写入以联系人电话命名的txt文件中
5、删除短信
【代码】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import inbox from datetime import datetime import time import contacts def get_mobile_number_by_name(db, name): found = db.find(name) #如果在联系人中可以找到,则返回号码,否则直接返回name mobile_number = found[0].find('mobile_number')[0].value if len(found) > 0 else name return mobile_number def write_mess(name, mess): filename = 'e:/data/inbox/' + name + '.txt' f = open(filename, 'a+') f.write(mess.encode('utf-8')) f.close() inbox_obj = inbox.Inbox() m = inbox_obj.sms_messages() db = contacts.open() k = 0 for i in m: k += 1 name = inbox_obj.address(i) content = inbox_obj.content(i) #格式化时间 format = '%Y-%m-%d %H:%M:%S' result = datetime.fromtimestamp(inbox_obj.time(i)) ltime = result.strftime(format) #输出内容,调试用 print name, content, ltime mobile_number = get_mobile_number_by_name(db, name) #对于 if (mobile_number[0:6] != '106581'): write_mess(mobile_number, ltime + content + "\r\n") # 删除短信 inbox_obj.delete(i) #一次执行10条,此处为测试用 if k > 10: break |
注意:此程序为个人所用,会删除收件箱内的所有短信,如果出现问题本人概不负责^_^!
此程序在nokia e63型号机器上测试通过,使用python1.9.7 for s60
EOF