Вы всегда можете передать строковый путь в качестве параметра SQL в оператор ATTACH
:
database_path = "results_a.db"
con3.execute("ATTACH ? as dba", (database_path,))
Используйте это с кодом для вывода списка всех файлов базы данных;например, используя glob.glob()
и предполагая, что все файлы базы данных находятся в одном каталоге и всегда имеют расширение файла .db
:
import os
import glob
directory_with_databases = "/path/to/directory"
databases = glob.glob(os.path.join(directory_with_databases, "*.db"))
for filename in databases:
con3.execute("ATTACH ? as dba", (filename,))
# use attached `dba` database
con3.execute("detach database dba")
Обратите внимание, что вышепредполагается, что имя dba
может быть повторно использовано для каждого файла базы данных. Если вам нужно одновременно подключить несколько баз данных, вам придется также сгенерировать имена вложений базы данных.
Если вы используете pathlib
для создания путей, то вы будетесначала нужно преобразовать экземпляр Path()
в строку:
from pathlib import Path
directory_with_databases = Path("/path/to/directory")
for database_path in directory_with_databases.glob("*.db"):
con3.execute("ATTACH ? as dba", (str(database_path),))
# use attached `dba` database
con3.execute("detach database dba")
Вы всегда можете настроить глобус для включения произвольных каталогов или для рекурсивного поиска всех подходящих файлов;подробности смотрите в документации по glob.glob()
или pathlib.Path.glob()
.