You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python将多个CSV文件导入到单个SQLite或MySQL数据库中?

多CSV文件批量导入数据库解决方案

SQLite实现方案

你可以基于单文件导入的逻辑,增加遍历本地CSV文件的步骤即可,依赖库为sqlite3、pandas、os,示例代码如下:

import sqlite3
import pandas as pd
import os

# 配置参数
csv_folder = "./csv_files"  # 存放所有CSV文件的文件夹路径
sqlite_db_path = "all_data.sqlite"  # 目标SQLite数据库路径

# 建立数据库连接
conn = sqlite3.connect(sqlite_db_path)

# 遍历文件夹下所有CSV文件
for filename in os.listdir(csv_folder):
    if filename.endswith(".csv"):
        # 取文件名(去掉.csv后缀)作为表名
        table_name = os.path.splitext(filename)[0]
        # 可选:替换表名中的特殊字符避免报错
        table_name = table_name.replace(" ", "_").replace("-", "_")
        csv_path = os.path.join(csv_folder, filename)
        # 读取CSV并导入数据库
        df = pd.read_csv(csv_path)
        df.to_sql(table_name, conn, if_exists='append', index=False)
        print(f"文件{filename}已导入表{table_name}")

# 关闭连接
conn.close()

MySQL实现方案

MySQL场景下推荐配合sqlalchemy创建数据库连接引擎,依赖库为pandas、sqlalchemy、pymysql,示例代码如下:

import os
import pandas as pd
from sqlalchemy import create_engine

# 配置参数
csv_folder = "./csv_files"  # 存放所有CSV文件的文件夹路径
# MySQL连接参数,按实际情况修改
mysql_config = {
    "user": "你的数据库用户名",
    "password": "你的数据库密码",
    "host": "127.0.0.1",
    "port": 3306,
    "database": "目标数据库名"
}

# 创建数据库连接引擎
engine = create_engine(f"mysql+pymysql://{mysql_config['user']}:{mysql_config['password']}@{mysql_config['host']}:{mysql_config['port']}/{mysql_config['database']}?charset=utf8mb4")

# 遍历文件夹下所有CSV文件
for filename in os.listdir(csv_folder):
    if filename.endswith(".csv"):
        table_name = os.path.splitext(filename)[0]
        table_name = table_name.replace(" ", "_").replace("-", "_")
        csv_path = os.path.join(csv_folder, filename)
        df = pd.read_csv(csv_path)
        df.to_sql(table_name, engine, if_exists='append', index=False)
        print(f"文件{filename}已导入表{table_name}")

# 关闭引擎
engine.dispose()

常见注意事项

  • 若CSV文件名包含空格、特殊符号,建议提前做字符替换,避免数据库表名不合法报错
  • if_exists参数可根据需求调整:replace为覆盖原有表数据和结构,append为在已有表中追加数据,fail为表存在时直接报错终止操作
  • 单文件体积超过1G的大CSV,可在pd.read_csv中添加chunksize=10000参数分批读取导入,避免内存溢出

内容的提问来源于stack exchange,提问作者kinder chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 20:09:02