init database expect db_node

This commit is contained in:
Burgess Leo
2025-05-15 16:33:30 +08:00
parent c6800de871
commit 6af6fedc8e
24 changed files with 1232 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
import sqlite3
def InsertExtensionsToDB(extensions, db_path='../src/db_ntfs_info.db', table_name='db_extend_name'):
"""
将扩展名列表插入到数据库中,自动忽略重复项。
参数:
extensions: list of str要插入的扩展名列表如 ["txt", "jpg"]
db_path: strSQLite 数据库路径
table_name: str扩展名表名
返回:
int: 成功插入的新记录数量
"""
if not isinstance(extensions, list):
raise TypeError("extensions 必须是一个列表")
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
try:
# 创建表(如果不存在)
create_table_sql = f"""
CREATE TABLE IF NOT EXISTS {table_name} (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
ExtendName TEXT UNIQUE NOT NULL
);
"""
cursor.execute(create_table_sql)
# 插入语句(忽略重复)
insert_sql = f"""
INSERT OR IGNORE INTO {table_name} (ExtendName)
VALUES (?)
"""
# 构造插入数据格式
data_to_insert = [(ext.lower(),) for ext in extensions if ext.strip()]
# 批量插入
cursor.executemany(insert_sql, data_to_insert)
conn.commit()
inserted_count = cursor.rowcount
if inserted_count > 0:
print(f"✅ 成功插入 {inserted_count} 个扩展名")
else:
print("⚠️ 没有新的扩展名被插入(可能已存在)")
return inserted_count
except Exception as e:
print(f"❌ 插入失败: {e}")
conn.rollback()
return 0
finally:
conn.close()
# 示例调用
if __name__ == "__main__":
# 常见的文件扩展名列表(可选)
common_extensions = ["txt", "log", "csv", "xls", "xlsx", "doc", "docx"]
count = InsertExtensionsToDB(common_extensions)
print(f"共插入 {count} 个新扩展名。")