Julia文件读取路径的问题

最近刚接触Julia,需要做一些数据分析的东西,数据的提取部分已经完成了,在文件读取路径这块有一些问题想请教一下。

/Users/D1/D2/0000001_xxxxx/1.csv

1、因为有一部分自动化的需求,最后一个子文件夹里有1,2,3……多个表都要取数据。Julia是否有这种自动对文件夹里的每个文件都执行操作的循环语句?(在文件读取这块)

2、0000001_xxxxx这个部分是一个正序数列,就是单个子文件夹里循环完之后还要回到上级在进行循环。并且0000001作为id要标注。我之前用R的时候有str_sub这个函数,监测到0取9位这样,不知道Julia有没有类似的函数。

因为我在网络上搜索的文件读取的问题大多集中在如何读取不同类型的文件,因此并没有找到相应的有关的解答。

感谢!QAQ

  1. 你可能说的是 readdir 这个函数,其它的需要自己实现。Filesystem · The Julia Language
  2. 截取字符串可以用 SubStringStrings · The Julia Language
1 个赞

1、因为有一部分自动化的需求,最后一个子文件夹里有1,2,3……多个表都要取数据。Julia是否有这种自动对文件夹里的每个文件都执行操作的循环语句?(在文件读取这块)

help?> walkdir
search: walkdir

  walkdir(dir; topdown=true, follow_symlinks=false, onerror=throw)

  Return an iterator that walks the directory tree of a directory. The iterator returns a tuple
  containing (rootpath, dirs, files). The directory tree can be traversed top-down or
  bottom-up. If walkdir or stat encounters a IOError it will rethrow the error by default. A
  custom error handling function can be provided through onerror keyword argument. onerror is
  called with a IOError as argument.

  Examples
  ≡≡≡≡≡≡≡≡≡≡

  for (root, dirs, files) in walkdir(".")
      println("Directories in $root")
      for dir in dirs
          println(joinpath(root, dir)) # path to directories
      end
      println("Files in $root")
      for file in files
          println(joinpath(root, file)) # path to files
      end
  end

  julia> mkpath("my/test/dir");
  
  julia> itr = walkdir("my");
  
  julia> (root, dirs, files) = first(itr)
  ("my", ["test"], String[])
  
  julia> (root, dirs, files) = first(itr)
  ("my/test", ["dir"], String[])
  
  julia> (root, dirs, files) = first(itr)
  ("my/test/dir", String[], String[])


用 Glob 来匹配文件也挺舒服的: