确定一个 sqlite3 数据库是否是只读的

Cra*_*een 2 python sqlite

我想打开一个 sqlite3 数据库,并立即检查它是否以只读方式打开。因为我知道我需要写入它,所以我想在启动时立即返回一个错误,而不必等到程序第一次尝试写入的时候。

我看到有一个 sqlite3 C API 函数sqlite3_db_readonly()。是否可以从 Python API 访问此函数?或者是否有其他方法可以通过 Python API 检查数据库是否为只读?

var*_*rro 5

除了提到的其他可能性之外,您可以尝试写入它。例如,如果user_version数据库的 是 0(除非您更改它,否则它将是 0),发出pragma user_version=0;. 如果数据库是可写的,这将不起作用,但如果数据库是只读的,则会导致错误。