如何用Python处理TXT文件数据并存储到SQLite3数据库
将TXT数据导入SQLite3数据库的实现步骤
我来一步步教你把这些TXT里的名字数据存到SQLite3数据库里,咱们分两步走:先整理文本数据,再写入数据库。
第一步:处理content中的文本数据
你的数据结构是第一行表头,后面每行对应一个排名+男性名字+女性名字,咱们要把每个名字拆成独立的数据库记录(比如Noah对应rank1、性别男,Emma对应rank1、性别女),具体代码如下:
# 把文本按行拆分,过滤掉空行 lines = [line.strip() for line in content.splitlines() if line.strip()] # 跳过第一行表头,提取有效数据 data_records = [] for line in lines[1:]: # 按空格拆分每行内容(假设数据用空格分隔) parts = line.split() if len(parts) == 3: rank, male_name, female_name = parts # 添加男性名字的记录 data_records.append((int(rank), male_name, 'male')) # 添加女性名字的记录 data_records.append((int(rank), female_name, 'female'))
第二步:连接SQLite3并写入数据
接下来咱们连接数据库,创建目标表,然后把整理好的数据批量插进去:
import sqlite3 # 连接数据库(如果文件不存在会自动创建) conn = sqlite3.connect('names_rank.db') cursor = conn.cursor() # 创建表:包含rank(排名)、name(名字)、sex(性别)三个字段 cursor.execute(''' CREATE TABLE IF NOT EXISTS name_rankings ( rank INTEGER, name TEXT, sex TEXT ) ''') # 批量插入数据,比逐条插入效率高很多 cursor.executemany(''' INSERT INTO name_rankings (rank, name, sex) VALUES (?, ?, ?) ''', data_records) # 提交更改并关闭连接,一定要提交不然数据不会写入 conn.commit() conn.close()
小提示
- 你可以把数据库文件名
names_rank.db改成自己想要的名字; - 如果你的TXT数据里有空格分隔的异常情况,可能需要调整
split()的逻辑(比如用正则匹配分割),不过目前你的示例数据用普通空格拆分完全没问题; - 批量插入用
executemany()比循环调用execute()高效得多,数据量大的时候差距会很明显。
内容的提问来源于stack exchange,提问作者Andres ZW
相关产品推荐
相关产品推荐

