julia - 有没有办法使用 Julia 的 readdir() 来排序目录?
问题描述
我有超过一千个名为LOGS_A1
, LOGS_A2
, LOGS_A3 , ...,
LOGS_A16281` 的文件,我想按顺序列出这些文件
cwd = pwd()
ParentDir = joinpath(cwd,"LOGS_A")
dirs = readdir(ParentDir, join=true, sort=true)
但是,它按字母顺序排列条目:
LOGS_A999
LOGS_A9990
LOGS_A9991
LOGS_A9992
LOGS_A9993
LOGS_A9994
LOGS_A9995
LOGS_A9996
LOGS_A9997
LOGS_A9998
LOGS_A9999
有没有办法对其进行排序,使其从 1 到 16281 列出?
解决方案
要获得更简单、更可靠的答案,请使用NaturalSort.jl:
julia> using Pkg; pkg"add NaturalSort"
Resolving package versions...
Updating `~/.julia/environments/v1.5/Project.toml`
[c020b1a1] + NaturalSort v1.0.0
Updating `~/.julia/environments/v1.5/Manifest.toml`
[c020b1a1] + NaturalSort v1.0.0
julia> using NaturalSort
[ Info: Precompiling NaturalSort [c020b1a1-e9b0-503a-9c33-f039bfc54a85]
julia> src = ["LOGS_A1","LOGS_A10","LOGS_A11","LOGS_A2","LOGS_A3","LOGS_A4",
"LOGS_A5","LOGS_A6","LOGS_A7","LOGS_A8","LOGS_A9"];
julia> sort(src, lt=natural)
11-element Array{String,1}:
"LOGS_A1"
"LOGS_A2"
"LOGS_A3"
"LOGS_A4"
"LOGS_A5"
"LOGS_A6"
"LOGS_A7"
"LOGS_A8"
"LOGS_A9"
"LOGS_A10"
"LOGS_A11"
推荐阅读
- powershell - 如何通过 api 获取 Azure Devops / TFS 中特定 BUILD 中使用的变量
- node.js - 如何在控制器上下文之外访问经过身份验证的用户
- mysql - 在 Express.js 中使用 Sequelize 查询端点参数的组合
- java - 无法在片段中实现 Recycler 视图适配器
- powershell - Powershell FTP 脚本字符串连接
- python - 告诉基类的方法在派生类中使用更多受限类型提示?
- google-workspace - G Suite 和 Search Console — 如何确认对域的权限?
- typescript - 从字符串参数实例化 Typescript 类
- java - TabLayout 不可用,错误膨胀,所有内容均已导入,但不“可见”
- arrays - 如何将数组中元素的值分配给变量,然后将该值分配给单元格