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

如何在Python CSV解析函数中获取无扩展名文件名而非完整路径

问题描述

你有一个存放6个csv文件的文件夹,路径如下:

path = r'/Users/username/Documents/Lab/Datasets/FDA_Dataset'

你通过glob方法读取所有csv文件存入FDA_dataset变量:

FDA_dataset = glob.glob(path + "/*.csv")

你需要定义函数为每个csv文件生成DataFrame,输出字段名和对应无扩展名的数据集名称,期望输出格式示例:

field_1, dataset_melanoma
field_2, dataset_melanoma
field_3, dataset_melanoma
...
field_1, dataset_breast
field_2, dataset_breast
field_3, dataset_breast

当前编写的函数如下:

def parse_csv(filename):
        df = pd.read_csv(filename, index_col=None, header=0)
        for col in df.columns:
                print(col, '\n,', filename)
for x in FDA_dataset:
        print(parse_csv(x))

当前函数返回的是字段名+完整文件路径,需要处理filename变量得到无扩展名的文件名,实现目标输出格式。

解决方法

使用Python内置的os.path模块处理文件路径即可实现需求,修改后的完整代码如下:

import os
import glob
import pandas as pd

path = r'/Users/username/Documents/Lab/Datasets/FDA_Dataset'
FDA_dataset = glob.glob(path + "/*.csv")

def parse_csv(filename):
    # 提取无扩展名的数据集名称
    dataset_name = os.path.splitext(os.path.basename(filename))[0]
    df = pd.read_csv(filename, index_col=None, header=0)
    for col in df.columns:
        # 按要求格式输出
        print(f"{col}, {dataset_name}")

for x in FDA_dataset:
    parse_csv(x)

关键逻辑说明:

  • os.path.basename(filename):从完整文件路径中截取带扩展名的文件名,比如返回dataset_melanoma.csv
  • os.path.splitext(xxx)[0]:将带扩展名的文件名拆分为「名称、扩展名」的元组,取第一个元素即可得到无后缀的数据集名称
  • 原代码中多余的换行符\n和二次打印print(parse_csv(x))已移除,避免输出多余的空行和None值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:06:02