什么是Python的os.walk的Ruby等价物?

时间:2009-08-15 03:40:17

标签: python ruby

有没有人知道Ruby中是否存在现有的模块/函数来遍历文件系统目录和文件?我正在寻找类似于Python os.walk的东西。我发现的最接近的模块是Find,但需要一些额外的工作来进行遍历。

Python代码如下所示:

for root, dirs, files in os.walk('.'):
    for name in files:
        print name
    for name in dirs:
        print name

3 个答案:

答案 0 :(得分:23)

以下将以递归方式打印所有文件。那你可以使用File.directory吗?查看它是目录还是文件。

Dir['**/*'].each { |f| print f }

答案 1 :(得分:9)

Find对我来说似乎很简单:

require "find"
Find.find('mydir'){|f| puts f}

答案 2 :(得分:3)

require 'pathname'

def os_walk(dir)
  root = Pathname(dir)
  files, dirs = [], []
  Pathname(root).find do |path|
    unless path == root
      dirs << path if path.directory?
      files << path if path.file?
    end
  end
  [root, files, dirs]
end

root, files, dirs = os_walk('.')