TrashNotes

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("Данные успешно добавлены в базу данных.")
← Previous Next →
Back to list