py读取txt文本内容并将其插入MySQL中的示例代码
时间: 2024-11-22 21:44:39 浏览: 4
在Python中,我们可以使用`pandas`库来处理txt文件的内容,然后通过`mysql-connector-python`库将数据插入MySQL数据库。这里有一个简单的示例代码:
```python
import pandas as pd
import mysql.connector
# 连接MySQL
def connect_mysql(user, password, host, db_name):
connection = mysql.connector.connect(
user=user,
password=password,
host=host,
database=db_name
)
return connection
# 读取txt文件
def read_txt(file_path):
with open(file_path, 'r') as f:
lines = f.readlines() # 假设txt文件一行对应一条记录,每行按逗号分割
data = [line.strip().split(',') for line in lines]
return pd.DataFrame(data, columns=['col1', 'col2']) # 将列名替换为你实际的列名
# 插入数据到表
def insert_data(df, connection, table_name):
df.to_sql(table_name, con=connection, if_exists='replace', index=False) # replace表示覆盖已存在的表
print(f"{df.shape[0]} rows inserted.")
# 示例文件路径、MySQL配置
file_path = 'your_text_file.txt'
user, password, host, db_name = 'your_username', 'your_password', 'localhost', 'your_database'
# 连接数据库
connection = connect_mysql(user, password, host, db_name)
# 读取并处理数据
data = read_txt(file_path)
# 创建表(如果不存在)
table_name = 'your_table_name'
if not connection.is_connected():
# 检查连接是否有效,此处简化处理
pass
else:
df_columns = data.columns.tolist()
cursor = connection.cursor()
cursor.execute("SHOW TABLES LIKE %s", ('%s' % table_name,))
table_exists = cursor.fetchone() is not None
cursor.close()
if not table_exists:
sql_create_table = "CREATE TABLE {} ({})".format(table_name, ', '.join(['{} VARCHAR(255)'.format(col) for col in df_columns]))
cursor = connection.cursor()
cursor.execute(sql_create_table)
connection.commit()
# 插入数据
insert_data(data, connection, table_name)
# 关闭连接
connection.close()
```
请注意,这个示例假设txt文件是以逗号分隔的数据,每一行对应数据库中的一个记录。请根据实际情况调整代码,例如更改读取方式,添加错误处理等。
阅读全文