import sqlite3 import configparser class SQLiteDB: def __init__(self, db_name): self.conn = sqlite3.connect(db_name) self.cursor = self.conn.cursor() def create_table(self, table_name, columns): columns_def = ', '.join([f"{col} {dtype}" for col, dtype in columns.items()]) sql = f"CREATE TABLE IF NOT EXISTS {table_name} ({columns_def})" self.cursor.execute(sql) self.conn.commit() def insert(self, table_name, data): placeholders = ', '.join(['?' for _ in data]) columns = ', '.join(data.keys()) sql = f"INSERT INTO {table_name} ({columns}) VALUES ({placeholders})" try: self.cursor.execute(sql, tuple(data.values())) self.conn.commit() except Exception as e: print(e) def update(self, table_name, data, condition): set_clause = ', '.join([f"{col} = ?" for col in data.keys()]) sql = f"UPDATE {table_name} SET {set_clause} WHERE {condition}" self.cursor.execute(sql, tuple(data.values())) self.conn.commit() def delete(self, table_name, condition): sql = f"DELETE FROM {table_name} WHERE {condition}" self.cursor.execute(sql) self.conn.commit() def query(self, table_name, columns='*', condition=None): sql = f"SELECT {columns} FROM {table_name}" if condition: sql += f" WHERE {condition}" self.cursor.execute(sql) return self.cursor.fetchall() def close(self): self.conn.close() if __name__ == '__main__': config = configparser.ConfigParser() config.read('config.ini') db_path = config.get('excel_p', 'path') + 'example.db' db = SQLiteDB(db_path) print(db.query('sqlite_master')) db.close()