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

Python读取文件夹内按数字命名CSV文件时排序异常如何解决

问题修复方案

问题原因

glob返回的文件列表默认采用字符串字典序排序,对数字组成的文件名而言,10.csv的字符串优先级高于2.csv,因此会出现不符合预期的读取顺序。

修改后代码

import os
import glob
import pandas as pd

def csv_readout_folder(path):    
    files = glob.glob(os.path.join(path, '*.csv'))
    # 按文件名数字部分做整数排序,修复读取顺序问题
    files = sorted(files, key=lambda f: int(os.path.splitext(os.path.basename(f))[0]))
    all_data = pd.DataFrame()

    for f in files:
        data = csv_readout(path,f)
        # 新增ignore_index避免合并后索引重复
        all_data = pd.concat([all_data, data], ignore_index=True)
           
    return all_data

核心修改说明

  • 路径拼接改用os.path.join,适配Windows、macOS、Linux等不同系统的路径格式,避免手动写/带来的兼容性问题
  • 新增sorted自定义排序:提取每个csv文件的纯文件名,转为整数后作为排序依据,实现1、2、3……96的自然顺序读取
  • 可选优化:pd.concat添加ignore_index=True参数,合并后自动重置行索引,避免后续数据处理时出现索引重复的异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:45:01