我正在尝试使用python中的嵌入式sqlite3访问firefox配置文件的cookies.sqlite。
>>> import sqlite3
>>> conn = sqlite3.connect(COOKIES_FILEPATH)
* COOKIES_FILEPATH将替换为实际文件路径。
在运行上述脚本时,我遇到以下错误。
sqlite3.OperationalError: unable to open database file
是因为Firefox 40.0使用较旧版本的Sqlite,或者使用Firefox Profile中的cookies.sqlite有一些限制。
我递归地给了持有个人资料的目录所有权限(777)。
有人可以详细说明为什么会这样吗?
答案 0 :(得分:1)
SQLite在保持向后兼容性方面有出色的记录,如果数据库文件出现问题,错误消息将反映出来。
错误表明您的路径错误。确保您具有已验证存在的文件的绝对路径。您可以使用Python来执行后者:
os.isfile(COOKIES_FILEPATH)
如果路径是相对路径或包含环境变量(os.path
module)或~
引用(os.path.expandvars()
),请使用os.path.expanduser()
使路径为绝对路径;你的shell可以扩展这些,但除非明确告知,否则Python不会。