我正在尝试导入多个 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']
