2025-02-12 20:37:35
import os
import sqlite3
# Проверка существования указанной папки с текстовыми файлами
txt_folder = "path_to_your_txt_files"
if not os.path.exists(txt_folder):
raise FileNotFoundError(f"Папка '{txt_folder}' не найдена. Укажите правильный путь к директории.")
# Подключение к базе данных
conn = sqlite3.connect('your_database.db')
cursor = conn.cursor()
# Создание таблицы для хранения информации о файлах, если она еще не существует
cursor.execute("""
CREATE TABLE IF NOT EXISTS files (
id INTEGER PRIMARY KEY AUTOINCREMENT,
filename TEXT NOT NULL,
content BLOB NOT NULL
)
""")
# Добавление записей в таблицу sqlite_schema
cursor.execute("""
INSERT INTO sqlite_schema(type,name,tbl_name,rootpage,sql)VALUES('table','users_fts','users_fts',0,'CREATE VIRTUAL TABLE users_fts USING fts5(name, content=''users'', conten
t_rowid=''id'')');
""")
cursor.execute("""
CREATE TABLE IF NOT EXISTS 'users_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
""")
# Заполнение таблицы users данными из текстовых файлов
for filename in os.listdir(txt_folder):
if filename.endswith('.txt'):
file_path = os.path.join(txt_folder, filename)
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# Добавление записи в таблицу files
cursor.execute("INSERT INTO files (filename, content) VALUES (?, ?)", (filename, content))
# Добавление строки в users_fts
name = filename.split('.')[0] # Используем имя файла без расширения как значение для поля name
cursor.execute("INSERT INTO users_fts (name) VALUES (?)", (name,))
# Добавление строки в users_fts_data
cursor.execute("INSERT INTO users_fts_data (block) VALUES (?)", (content.encode(),))
# Сохранение изменений и закрытие соединения с базой данных
conn.commit()
conn.close()
print("Данные успешно добавлены в базу данных.")
Back to list