为什么我无法使用Python 2.7读取iPhone SMS数据库?
我觉得这可能是sqlite版本的问题,但我不太确定该怎么检查。 我正在使用Python 2.7.1。
如果我使用sqlite控制台,我可以读取我的消息:
C:\>sqlite3 -version
3.7.10 2012-01-16 13:28:40 ebd01a8deffb5024a5d7494eef800d2366d97204
C:\>sqlite3 "c:\Users\wrightm\AppData\Roaming\Apple Computer\MobileSync\Backup\59aeac0d1993f5088fccb52978016c9fa9d5eae2\3d0d7e5fb2ce288813306e4d4636395e047a3d28" "select count(*) from message;"
5722
但是,Python 2.7却不能。我猜测iPhone短信备份的数据库版本可能不对,但我该怎么确认这个版本呢?
C:\>python -c "import sqlite3;print sqlite3.sqlite_version"
3.6.21
C:\>python -c "import sqlite3;sqlite3.connect(r'c:\Users\wrightm\AppData\Roaming\Apple Computer\MobileSync\Backup\59aeac0d1993f5088fccb52978016c9fa9d5eae2\3d0d7e5fb2ce28881330').execute('select count(*) from message;').fetchall()"
Traceback (most recent call last):
File "<string>", line 1, in <module>
sqlite3.OperationalError: no such table: message
1 个回答
0
第一版的路径是:
c:\Users\wrightm\AppData\Roaming\Apple Computer\MobileSync\Backup\59aeac0d1993f5088fccb52978016c9fa9d5eae2\3d0d7e5fb2ce288813306e4d4636395e047a3d28
第二版的路径是:
c:\Users\wrightm\AppData\Roaming\Apple Computer\MobileSync\Backup\59aeac0d1993f5088fccb52978016c9fa9d5eae2\3d0d7e5fb2ce28881330
看起来你在第二个文件名中漏掉了一些字符。