readdir函数读取文件夹内的文件,如何按照数字大小排序?
技术分享
发布于 2025-07-18 09:37:36
查看 1过去319天
1.假设有一个文件夹,当使用 readdir 函数读取文件夹内的文件时,默认情况下返回的文件列表可能会按照字符串排序,而不是按照数字大小排序。
2.如果想要按照文件名中的数字大小排序,可以使用 sort! 函数,并自定义排序函数 extract_number,从文件名中提取数字并将其转换为整数,按照这个整数进行排序。示例如下:
function extract_number(file_name::String)
match_result = match(r"\d+", file_name)
if match_result === nothing
return typemax(Int) # 如果没有匹配到数字,将这类文件放在后面
else
return parse(Int, match_result.match)
end
end
file_names = readdir("folder")
sort!(file_names, by = extract_number)
for file_name in file_names
println(file_name)
end

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境