Given an sqlite3 connection object, how can retrieve the file path to the sqlite3 file?
The Python connection object doesn't store this information.
You could store the path before you open the connection:
path = '/path/to/database/file.db'
conn = sqlite3.connect(path)
or you can ask the database itself what connections it has, using the database_list pragma:
for id_, name, filename in conn.execute('PRAGMA database_list'):
if name == 'main' and filename is not None:
path = filename
break
If you used a connection URI (connecting with the sqlite3.connect()
parameter uri=True
), the filename will not include the URI parameters or the file://
prefix.