在当今社交网络日益发达的时代,高效管理个人名片显得尤为重要。Python作为一种功能强大的编程语言,可以轻松帮助我们构建一个高效的名片管理系统。本文将详细介绍如何使用Python打造这样一个系统,包括...
在当今社交网络日益发达的时代,高效管理个人名片显得尤为重要。Python作为一种功能强大的编程语言,可以轻松帮助我们构建一个高效的名片管理系统。本文将详细介绍如何使用Python打造这样一个系统,包括数据存储、检索以及一键管理等功能。
使用SQLite数据库存储名片信息,创建一个名为cards.db的数据库文件,包含一个名为contacts的表,字段包括:
id:主键,自增name:姓名phone:电话email:邮箱company:公司import sqlite3
# 创建数据库连接
conn = sqlite3.connect('cards.db')
cursor = conn.cursor()
# 创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS contacts ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, phone TEXT, email TEXT, company TEXT
)
''')
# 提交事务
conn.commit()
# 关闭连接
conn.close()使用Python的sqlite3模块向数据库中插入数据。
import sqlite3
# 创建数据库连接
conn = sqlite3.connect('cards.db')
cursor = conn.cursor()
# 插入数据
cursor.execute('''
INSERT INTO contacts (name, phone, email, company) VALUES (?, ?, ?, ?)
''', ('张三', '13800138000', 'zhangsan@example.com', '公司A'))
# 提交事务
conn.commit()
# 关闭连接
conn.close()根据姓名、电话、邮箱等关键字进行简单检索。
import sqlite3
def search_contact(keyword): conn = sqlite3.connect('cards.db') cursor = conn.cursor() # 查询 cursor.execute(''' SELECT * FROM contacts WHERE name LIKE ? OR phone LIKE ? OR email LIKE ? ''', ('%' + keyword + '%', '%' + keyword + '%', '%' + keyword + '%')) # 获取结果 results = cursor.fetchall() # 关闭连接 conn.close() return results
# 查询张三的信息
results = search_contact('张三')
for result in results: print(result)根据多个条件进行高级检索,如姓名、公司、电话等。
import sqlite3
def search_contact_advanced(name=None, company=None, phone=None): conn = sqlite3.connect('cards.db') cursor = conn.cursor() # 构建查询语句 query = 'SELECT * FROM contacts' conditions = [] params = [] if name: conditions.append('name LIKE ?') params.append('%' + name + '%') if company: conditions.append('company LIKE ?') params.append('%' + company + '%') if phone: conditions.append('phone LIKE ?') params.append('%' + phone + '%') if conditions: query += ' WHERE ' + ' AND '.join(conditions) cursor.execute(query, params) else: cursor.execute(query) # 获取结果 results = cursor.fetchall() # 关闭连接 conn.close() return results
# 查询公司为“公司A”且电话为“13800138000”的信息
results = search_contact_advanced(company='公司A', phone='13800138000')
for result in results: print(result)将名片信息导入到数据库中。
import sqlite3
def import_contacts(filename): conn = sqlite3.connect('cards.db') cursor = conn.cursor() # 读取文件 with open(filename, 'r') as f: for line in f: name, phone, email, company = line.strip().split(',') cursor.execute(''' INSERT INTO contacts (name, phone, email, company) VALUES (?, ?, ?, ?) ''', (name, phone, email, company)) # 提交事务 conn.commit() # 关闭连接 conn.close()
# 批量导入名片信息
import_contacts('contacts.txt')将数据库中的名片信息导出到文件中。
import sqlite3
def export_contacts(filename): conn = sqlite3.connect('cards.db') cursor = conn.cursor() # 查询所有数据 cursor.execute('SELECT * FROM contacts') results = cursor.fetchall() # 写入文件 with open(filename, 'w') as f: for result in results: f.write(','.join(map(str, result)) + '\n') # 关闭连接 conn.close()
# 批量导出名片信息
export_contacts('exported_contacts.txt')修改数据库中特定名片的信息。
import sqlite3
def update_contact(id, name=None, phone=None, email=None, company=None): conn = sqlite3.connect('cards.db') cursor = conn.cursor() # 构建更新语句 fields = [] params = [] if name: fields.append('name = ?') params.append(name) if phone: fields.append('phone = ?') params.append(phone) if email: fields.append('email = ?') params.append(email) if company: fields.append('company = ?') params.append(company) # 构建完整更新语句 query = 'UPDATE contacts SET ' + ', '.join(fields) + ' WHERE id = ?' params.append(id) # 执行更新 cursor.execute(query, params) conn.commit() # 关闭连接 conn.close()
# 修改id为1的名片信息
update_contact(1, name='李四', phone='13900139000', email='lisi@example.com', company='公司B')本文详细介绍了如何使用Python打造一个高效的名片管理系统。通过使用SQLite数据库和Tkinter图形界面,我们可以轻松实现数据的存储、检索和一键管理。在实际应用中,可以根据需求进行扩展和优化,例如添加更多字段、实现更复杂的检索功能等。希望本文对您有所帮助!