为什么我无法使用Python 2.7读取iPhone SMS数据库?

0 投票
1 回答
918 浏览
提问于 2025-04-17 12:31

我觉得这可能是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

看起来你在第二个文件名中漏掉了一些字符。

撰写回答