使用py将txt文本文档内容写入MySQL表格,若不存在表格则新建一个表格
时间: 2024-11-22 11:43:37 浏览: 5
01_将数据写入表格.zip_burnkbm_mysql写入excel
在Python中,我们可以使用`pandas`库处理CSV文件,并通过`pymysql`库连接到MySQL数据库。首先,你需要安装这两个库,如果还没安装,可以使用`pip install pandas mysql-connector-python`命令。
以下是步骤:
1. 导入库并设置数据库连接:
```python
import pandas as pd
import pymysql
# 创建数据库连接(假设数据库名为mydb,用户名为user,密码为passwd)
db = pymysql.connect(host='localhost', user='user', password='passwd', database='mydb')
```
2. 加载txt文档内容到DataFrame:
```python
def load_txt_to_df(txt_file_path):
with open(txt_file_path, 'r') as file:
data = file.readlines()
# 将数据转换为列表,每一行作为一列
df = pd.DataFrame(data, columns=['Column_Name']) # 更改列名如'Column_Name',如果txt中有字段分隔符,可以解析这里
return df
txt_df = load_txt_to_df('file.txt')
```
3. 检查表是否存在,不存在则创建:
```python
table_name = 'your_table_name'
cursor = db.cursor()
# 查询表是否已存在
try:
cursor.execute(f"SHOW TABLES LIKE '{table_name}'")
except pymysql.err.OperationalError:
# 如果不存在,创建新表
create_table_query = f"""
CREATE TABLE `{table_name}` (
`Column_Name` TEXT
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
"""
cursor.execute(create_table_query)
print(f"Table '{table_name}' created if not existed.")
else:
print(f"Table '{table_name}' already exists.")
# 插入数据
txt_df.to_sql(table_name, con=db, if_exists='append', index=False)
```
4. 提交事务并关闭连接:
```python
db.commit()
cursor.close()
db.close()
```
阅读全文