如何从指定文件夹提取CSV表头并生成含表名与列名的CSV文件
修改方案
你的现有代码是合并CSV的数据行,但需求是提取每个文件的表名(文件名)和对应列名,生成指定结构的CSV,以下是修改后的代码:
import glob import pandas as pd import os path = "你的文件夹路径" # 替换为实际文件夹路径 all_files = glob.glob(path + "/*.csv") # 存储最终结果的列表 result_rows = [] for filename in all_files: # 提取文件名(去掉路径和.csv后缀) table_name = os.path.splitext(os.path.basename(filename))[0] # 仅读取CSV的表头(不加载数据行,提升效率) df = pd.read_csv(filename, nrows=0) # 为每个列名生成一行数据 for col in df.columns: result_rows.append({"Table Name": table_name, "Column Names": col}) # 转换为DataFrame result_df = pd.DataFrame(result_rows) # 写入目标CSV文件 result_df.to_csv("目标文件名.csv", index=False) # 可选:打印结果验证 print(result_df)
关键修改说明:
- 使用
os.path.basename和splitext提取纯文件名,避免路径干扰,确保"Table Name"列是File1、File2这类名称。 - 用
nrows=0读取CSV时只加载表头,不需要读取全部数据,处理大文件时更高效。 - 遍历每个文件的列名,为每个列名生成包含表名和列名的行,完全匹配你要的输出结构。
- 最后用
to_csv写入目标文件,index=False避免生成多余的索引列。
内容的提问来源于stack exchange,提问作者user19561096
相关产品推荐
相关产品推荐

