在nokia s60中使用python将收件箱中的内容导出保存为文本

在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

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>