julia - 有没有办法使用 Julia 的 readdir() 对目录进行排序?

标签 julia

我有超过一千个文件名为 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"

关于julia - 有没有办法使用 Julia 的 readdir() 对目录进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63290695/

相关文章:

julia - 绘制由包含隐函数的方程组给出的函数

macros - Julia:宏如何知道它们的参数何时停止?

c - 按值将 C 结构返回给 Julia

dictionary - julia - 如何找到字典的最小值/最大值的键?

arrays - 具有多个范围的索引数组

regex - 加载错误 : PCRE compilation error: lookbehind assertion is not fixed length

reflection - 如何获取字段的值

parallel-processing - Julia Parallel 宏似乎不起作用

julia - 如何在 Julia 中扩展 Base.∘ 方法

julia - 基于字典和键数组创建值数组