Не видит таблицу SQlite3

столкнулся с проблемой. Файл бд лежит в одной дериктории с скриптом. Не понимаю что не так.

import sqlite3

conn = sqlite3.connect('db.db')
cursor = conn.cursor()

id = 317220077

cursor.execute('SELECT * FROM accounts WHERE id = ?', (id,)).fetchall()


conn.close()

трейс: sqlite3.OperationalError: no such table: accounts


Ответы (1 шт):

Автор решения: Maxim Timakov

Подобное может происходить, если текущая директория не совпадает с директорией, в которой расположена база данных.

При этом sqlite молча создает новую пустую базу данных.

Чтобы этого избежать нужно указывать полный путь к БД.

Для получения директории, в которой расположен скрипт можно использовать следующий код

from os import path

def get_script_dir():
    abs_path = path.abspath(__file__) # полный путь к файлу скрипта
    return path.dirname(abs_path)

Получим полное имя файла БД:

DB_NAME = 'db.db'
DB_FILE = get_script_dir() + path.sep + DB_NAME
→ Ссылка