专栏
标签
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

image.png

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

全部回答

暂无数据
暂无数据
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天