优化代码:import pandas as pd from sqlalchemy import create_engine path ='F:/海量数据实训/data_new.csv' data = pd.read_csv(path) # 连接数据库 engine = create_engine('mysql+pymysql://root:123456@localhost:3306/Mass?charset=utf8') # 获取csv文件的表头 columns = list(data.columns) # 语句 create_table = f " create table data_new({', '.join([f'{column} varchar(255)' for column in columns])})" # 执行语句 with engine.connect() as connection: connection.execute(create_table) # 将数据写入数据库中的表中 data.to_sql('data_new', con=engine, if_exists='append', index=False)
时间: 2024-03-25 18:35:34 浏览: 145
这段代码看起来已经很简洁了,但是可以进行进一步的优化。可以使用 try-except-finally 结构来确保连接关闭,避免因为程序异常退出而导致连接未关闭的情况。同时,可以使用 with 语句来自动关闭文件和连接等资源,增加代码的可读性和健壮性。下面是优化后的代码:
```
import pandas as pd
from sqlalchemy import create_engine
path = 'F:/海量数据实训/data_new.csv'
data = pd.read_csv(path)
# 连接数据库
engine = create_engine('mysql+pymysql://root:123456@localhost:3306/Mass?charset=utf8')
# 获取csv文件的表头
columns = list(data.columns)
# 构造创建表的 SQL 语句
create_table = f"CREATE TABLE data_new ({', '.join([f'{column} varchar(255)' for column in columns])})"
# 执行语句
try:
with engine.connect() as connection:
connection.execute(create_table)
data.to_sql('data_new', con=engine, if_exists='append', index=False)
except Exception as e:
print(e)
finally:
engine.dispose()
```
优化后的代码使用 with 语句来自动关闭连接,避免了因程序异常退出而导致连接未关闭的情况。同时,使用 try-except-finally 结构来确保程序的健壮性,如果出现异常,会打印异常信息。最后,使用 engine.dispose() 方法来关闭连接。
阅读全文