如何基于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
相关产品推荐
相关产品推荐

