ruby - 有没有比 Ruby 的 Dir.glob 更快的替代品?

标签 ruby performance glob

我正在使用 Dir.glob 访问与通配符模式匹配的所有文件的集合。

Dir.glob( '**/*.txt' ) { |file_name|
    parse file_name
}

因为这个 glob 调用是递归的,并且因为涉及很多文件,所以 glob 在 block 开始之前需要很长时间来构建文件数组。

我想要的是一种访问所有相同文件的方法,但在 Ruby“发现”每个文件后立即调用 block ,以便立即处理第一个文件,而不是等待整个目录树完成搜索。

有这样的构造吗?

最佳答案

您还可以使用findIO.popen

IO.popen("find . -name '*.txt'").each { |path| parse(path.chomp) }

关于ruby - 有没有比 Ruby 的 Dir.glob 更快的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487115/

相关文章:

ruby-on-rails - 如何在 Rails 中捕获 ActiveRecord::Base.connection.execute 的错误?

shell - 我可以在没有 for 的情况下为 zsh 中文件通配的每个结果执行命令吗?

mercurial - 如何让 mercurial 忽略所有隐藏文件?

ruby - 如何从私有(private)远程 ip 获取文件名列表

ruby - 你如何在 ruby​​ 中对多种类型进行排序?

ruby-on-rails - 如何强制清除 Rails SQL 缓存?

php - 加载大量包会影响 Symfony2 应用程序的整体性能吗?

python - 为什么在 Python 3.6 alpha 中文字格式的字符串(f 字符串)如此缓慢? (现在在 3.6 稳定版中修复)

MySQL 慢分组依据/排序依据

bash - bash 通配符行为记录在哪里?