事件经过:朋友原来用android手机,现在新买了iphone,系统:ios 6.1.3。他在android手机上用QQ通讯录把所有短信导出一个csv文件,但他在新iphone上装 QQ通讯录 时,却发现没了恢复短信的功能。我尝试用itools帮他恢复短信,找到一个教程-- http://bbs.itools.hk/thread-48-1-1.html 。但我发现itools不能识别该CSV文件。提示:无法识别的文件格式。我就想用自己的手机导出在itools中导出自己的短信,发现itools的CSV文件格式是:
PhoneNumber,DateCreated,Content,Type,State
10000,2013-05-28 10:52:42,"欢迎您XXXXXX",recv,read
11234345,2013-05-28 10:55:32,"XXXXXXXXX",send,read
接下是正题,如何解决itools导入csv文件无法识别问题:
1.所需的软件包括:python 2.7,notepad++
2.用Notepad++新建一个 【.py】后缀的文件,把QQ通讯录导出的格式转换成itools可识别的格式,代码如下(QQ通讯录的CSV文件放在D盘根目录下,转换后的文件都会放在D盘):
#-*- coding:utf-8 -*- import csv import sys reload(sys) sys.setdefaultencoding('utf-8') reader = csv.reader(open('D:/msg.csv')) out = open('D:/out.csv','w') firstLine = 'PhoneNumber,DateCreated,Content,Type,State' print >>out, firstLine file = csv.writer(out) for line in reader: text = line[0] if type(text)==float: text = long(text) text = str(text) name = line[1] if type(name)==float: name = long(name) name = str(name) phone = line[2] time = line[3] cate = line[4] if cate=='fajianxiang': cate = 'send' else: cate = 'recv' state = 'read' list = [phone,time,text,cate,state] file.writerow(list) print '-', out.close()
3. 把qq通讯录导出的CSV文件用notapad++打开,删除第一行:
"内容","对方名字","对方手机","发送时间 ","类型 "
接着把该CSV文件里的所有“发件箱”全替换成“fajianxiang”(因为python里识别中文太费劲,我直接替换就算了)
4. 下一步就是运行这个python文件,完了会在D盘生成一个out.csv文件。用notepad++打开,然后复制全部内容,再点notepad++的【格式】--【转为UCS2 Little Endian 格式编码】,再黏贴全部内容。
这时的文件itools就能识别了,可以继续上面那教程的导入。有什么不懂可发email给我。[email protected]