在命令行中运行该文件,按照提示操作即可
python
import sqlite3
# 连接到 SQLite 数据库
conn = sqlite3.connect('text_database.db')
cursor = conn.cursor()
# 创建文本表
cursor.execute('''
CREATE TABLE IF NOT EXISTS Texts (
ID INTEGER PRIMARY KEY,
文本 TEXT,
时间 TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
''')
# 创建标签表
cursor.execute('''
CREATE TABLE IF NOT EXISTS Tags (
ID INTEGER PRIMARY KEY,
标签 TEXT,
文本ID INTEGER,
FOREIGN KEY (文本ID) REFERENCES Texts(ID)
);
''')
# 添加标签函数
def add_tag(文本ID, 标签):
cursor.execute("INSERT INTO Tags (标签, 文本ID) VALUES (?, ?)", (标签, 文本ID))
conn.commit()
# 搜索标签函数
def search_by_tag(标签):
cursor.execute('''
SELECT Texts.文本
FROM Texts
INNER JOIN Tags ON Texts.ID = Tags.文本ID
WHERE Tags.标签 = ?
''', (标签,))
results = cursor.fetchall()
if results:
print("搜索结果:")
for result in results:
print(result[0])
else:
print("未找到匹配的文本。")
# 添加文本函数
def add_text(文本):
cursor.execute("INSERT INTO Texts (文本) VALUES (?)", (文本,))
文本ID = cursor.lastrowid
conn.commit()
return 文本ID
# 主程序
while True:
print("\n请输入文本(以#结束):")
text_lines = []
while True:
line = input().strip()
if line == "#":
break
text_lines.append(line)
文本 = '\n'.join(text_lines)
文本ID = add_text(文本)
print("请输入标签:")
标签 = input().strip()
add_tag(文本ID, 标签)
print("文本已添加,并贴上了标签。")
print("\n是否继续添加文本?(yes/no)")
choice = input().strip().lower()
if choice != 'yes':
break
# 搜索标签
print("\n请输入要搜索的标签:")
search_tag = input().strip()
search_by_tag(search_tag)
# 关闭数据库连接
conn.close()
这段代码使用中文变量名和表格字段名,请确保在运行代码之前已安装了 Python 和 SQLite3 模块,并将其保存在一个文件中,例如 text_database.py
。