使用MySQL数据库处理文件数据
编辑简介
当你的内存不足以一次性将大文件加载到内存中时,可以考虑使用数据库来处理数据。在这里,我将向你展示如何使用MySQL数据库来处理一个17GB的文件,其中每一行都是以“QQ号码—-电话号码”一一对应的形式。我们将把这些数据导入到MySQL数据库中,并可以直接在数据库中通过QQ号码来检索电话号码。
步骤1:安装MySQL数据库和Python库
安装MySQL数据库:前往MySQL官方网站(https://dev.mysql.com/downloads/installer/)下载并安装适合你操作系统的MySQL数据库。
安装
mysql-connector-python
库:使用以下命令在Python中安装mysql-connector-python
库。
pip install mysql-connector-python
步骤2:创建MySQL数据库和表
在MySQL数据库中创建一个数据库和用于存储QQ号码和电话号码的表。
-- 连接到MySQL数据库(在命令行或任何MySQL客户端中执行)
mysql -u your_username -p
-- 创建一个新的数据库
CREATE DATABASE qq_phone_db;
-- 选择创建的数据库
USE qq_phone_db;
-- 创建存储数据的表
CREATE TABLE qq_phone (
qq VARCHAR(20) PRIMARY KEY,
phone VARCHAR(20)
);
步骤3:Python代码
现在,我们将连接到MySQL数据库并将数据导入到表中。
import mysql.connector
def insert_data_to_mysql(file_path):
try:
# 连接到MySQL数据库
conn = mysql.connector.connect(
host='your_mysql_host', # 比如:'localhost',可以是IP地址或域名
user='your_mysql_username', # 数据库用户名
password='your_mysql_password', # 数据库密码
database='qq_phone_db' # 数据库名称
)
cursor = conn.cursor()
# 创建一个表来存储数据(如果之前没有创建)
create_table_query = '''CREATE TABLE IF NOT EXISTS qq_phone (
qq VARCHAR(20) PRIMARY KEY,
phone VARCHAR(20)
);'''
cursor.execute(create_table_query)
# 读取文件并将数据插入数据库
with open(file_path, 'r', encoding='utf-8') as file:
for line in file:
qq, phone = line.strip().split('----')
insert_query = '''INSERT INTO qq_phone (qq, phone) VALUES (%s, %s)'''
data = (qq, phone)
cursor.execute(insert_query, data)
# 提交更改并关闭数据库连接
conn.commit()
conn.close()
print("Data inserted successfully into MySQL database.")
except Exception as e:
print(f"Error: {e}")
# 示例使用
file_path = 'your_file.txt'
insert_data_to_mysql(file_path)
现在,你的数据已经成功导入到MySQL数据库中的qq_phone
表中。你可以使用SQL查询来检索电话号码,也可以使用类似的方式将数据查询出来。请确保在your_mysql_host
、your_mysql_username
和your_mysql_password
中填入正确的值,以便正确连接到MySQL数据库。
- 6
- 0
-
分享