I want to open a .db-file from python to inspect it. I can open it from a terminal,
    % sqlite3 scrapy_quotes.db
    sqlite> .tables
    author     quote      quote_tag  tag      
    sqlite> select * from quote limit 3
    ...
but from a python-script it only shows an empty file,
    from sqlalchemy import create_engine, inspect
    engine = create_engine('sqlite:///scrapy_quotes.db')
    insp = inspect(engine)
    print(insp.get_table_names())
    []
while this script does work for another .db-file.
    from sqlalchemy import create_engine, inspect
    engine = create_engine('sqlite:///chinook.db')
    insp = inspect(engine)
    print(insp.get_table_names())
    ['albums', 'artists', 'customers', 'employees', 'genres',                 
    'invoice_items', 'invoices', 'media_types', 
    'playlist_track', 'playlists', 'sqlite_sequence', 
    'sqlite_stat1', 'tracks']
What is going on?
Advertisement
Answer
I cannot reproduce your error, are you sure the paths are right ?
import sqlite3
con = sqlite3.connect("/tmp/test.db")
con.execute("CREATE TABLE test (id INT)")
con.commit()
con.close()
from sqlalchemy import create_engine, inspect
engine = create_engine("sqlite:////tmp/test.db")
inspect(engine).get_table_names()  # gives ['test']
% sqlite3 /tmp/test.db SQLite version 3.32.3 2020-06-18 14:16:19 Enter ".help" for usage hints. sqlite> .tables test sqlite> CREATE TABLE reverse (id INT);
from sqlalchemy import create_engine, inspect
engine = create_engine("sqlite:////tmp/test.db")
inspect(engine).get_table_names()  # gives ['reverse', 'test']