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

如何基于Pandas DataFrame创建含SQL文件的文件夹列表

基于DataFrame列批量创建文件夹与SQL文件

直接用Python结合pandas和os库就能实现需求,以下是可直接运行的代码示例:

import pandas as pd
import os

# 示例DataFrame(替换成你的实际数据)
df = pd.DataFrame({
    "main_folder": ["folder_1", "folder_2", "folder_3"],
    "sql_file_x": ["query_x_1.sql", "query_x_2.sql", "query_x_3.sql"],
    "sql_query_x": ["SELECT * FROM table1;", "SELECT * FROM table2;", "SELECT * FROM table3;"],
    "sql_file_y": ["query_y_1.sql", "query_y_2.sql", "query_y_3.sql"],
    "sql_query_y": ["INSERT INTO table1 VALUES (1);", "INSERT INTO table2 VALUES (2);", "INSERT INTO table3 VALUES (3);"]
})

# 遍历DataFrame每一行处理
for _, row in df.iterrows():
    # 创建主文件夹(若已存在则跳过)
    folder_path = row["main_folder"]
    os.makedirs(folder_path, exist_ok=True)
    
    # 写入第一个SQL文件
    x_file_path = os.path.join(folder_path, row["sql_file_x"])
    with open(x_file_path, "w", encoding="utf-8") as f:
        f.write(row["sql_query_x"])
    
    # 写入第二个SQL文件
    y_file_path = os.path.join(folder_path, row["sql_file_y"])
    with open(y_file_path, "w", encoding="utf-8") as f:
        f.write(row["sql_query_y"])

关键说明

  • os.makedirs(folder_path, exist_ok=True):确保文件夹存在,若已存在不会抛出错误,避免重复创建的问题。
  • 使用os.path.join拼接路径:自动适配Windows/macOS/Linux的路径分隔符,避免跨平台问题。
  • 指定encoding="utf-8"写入:保证SQL语句中的特殊字符不会出现乱码。

注意事项

如果DataFrame中存在重复的main_folder值,后续行的SQL文件会覆盖之前同文件夹下的同名文件。如果需要避免覆盖,可以在文件名或文件夹名后添加唯一标识(比如行索引),示例:

folder_path = f"{row['main_folder']}_{_}"  # 用行索引作为唯一后缀

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:27:30