Skip to main content
 首页 » 编程设计

python之如何导入具有排序文件名的 csv 文件

2025年05月04日17shanyou

我正在尝试导入多个 csv 文件,当我运行以下代码时它确实有效。

allfiles = glob.glob('*.csv') 
allfiles 

但是,这会导致:

['file_0.csv',   
'file_1.csv',   
'file_10.csv',   
'file_100.csv',   
'file_101.csv,   
... 
] 

如您所见,导入的文件不是排序后的数字。我想要的是让我的文件名中的数字按升序排列:

['file_0.csv',   
'file_1.csv',   
'file_2.csv',   
'file_3.csv', 
... 
]     

我该如何解决这个问题?

请您参考如下方法:

这也是一种方法。该算法将根据文件名字符串的长度进行排序。

import glob 
 
 
all_files = glob.glob('*.csv') 
 
def sort_with_length(file_name): 
    return len(file_name) 
 
new_files = sorted(all_files, key = sort_with_length ) 
 
print("Old files:") 
print(all_files) 
print("New files:") 
print(new_files) 

示例输出:

Old files: 
['file1.csv', 'file101.csv', 'file102.csv', 'file2.csv', 'file201.csv', 'file3.csv'] 
New files: 
['file1.csv', 'file2.csv', 'file3.csv', 'file101.csv', 'file102.csv', 'file201.csv']