草庐IT

globbing

全部标签

ruby - Dir.glob 和 Find 之间的区别

有什么区别:Dir.glob(File.join('.','**','*')).eachdo|e|end和require'find'Find.find('.').eachdo|e|end尽管Find慢了3倍。 最佳答案 Dir.glob迭代所有与参数匹配的文件/目录,可能以平面方式包含通配符,而Find.find首先迭代直接文件/与确切路径名匹配的目录,然后以递归方式查看其直接文件/目录。使用Find.find,您可以跳过整个目录。 关于ruby-Dir.glob和Find之间的区别,我

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

我正在使用Dir.glob访问与通配符模式匹配的所有文件的集合。Dir.glob('**/*.txt'){|file_name|parsefile_name}因为这个glob调用是递归的,并且因为涉及很多文件,所以glob在block开始之前需要很长时间来构建文件数组。我想要的是一种访问所有相同文件的方法,但在Ruby“发现”每个文件后立即调用block,以便立即处理第一个文件,而不是等待整个目录树完成搜索。有这样的构造吗? 最佳答案 您还可以使用find和IO.popenIO.popen("find.-name'*.txt'").

arrays - 为什么 Dir.glob ("*.txt").sort 也需要 .each?

Dir.glob("*.txt"){|f|pf}打印文件名。Dir.glob("*.txt").sort{|f|pf}因ArgumentError失败。Dir.glob("*.txt").sort.each{|f|pf}按字母顺序打印文件名。为什么第二个失败了?更好的是,为什么第一个工作,有或没有.each?Dir.glob和Dir.glob.sort都是数组。Dir.glob.methods==Dir.glob.sort.methods。(受AlphabetizeresultsofDir.glob启发。不是Dir.globwithsortissue的副本,因为“第三个”已经回答了那个

ruby - 如何执行 Dir.glob 但排除目录?

如果我想获取所有的CSS和JavaScript文件Dir.glob("dir/**/*.{css,js})如果有一个名为stupidfolder.js的文件夹,它会给我一些我不想要的东西。我只想更改文件夹的名称,但我不能。 最佳答案 你不能用Dir.glob做到这一点。您必须明确拒绝这些条目。only_files=Dir.glob('*').rejectdo|path|File.directory?(path)end 关于ruby-如何执行Dir.glob但排除目录?,我们在StackO

ruby - 如何让 Ruby Dir#glob 返回基本名称,而不是绝对路径?

FakeProfilePictures::Photo.all_large_names_2x(定义如下)返回绝对路径名数组,但是当我执行Dir["picture_*@2x.*"]从irb中的正确目录,我只得到基本名称(我想要的)。获取基本名称的最佳方法是什么?我知道我可以通过添加.map{|f|来做到这一点File.basename(f)}如评论中所示,但是否有更简单的/better/faster/stronger怎么办?moduleFakeProfilePicturesclassPhotoDIR=File.expand_path(File.join(File.dirname(__FIL

Ruby:Dir.glob 不返回任何文件

我正在尝试将文件从一个文件夹复制到另一个文件夹,然后将所有复制的文件的名称记录到一个日志文件中。这两个文件夹都在同一目录中,我通过命令行采用该路径。在我目前的程序中,这是通过argument3=ARGV[2]+"\\"成功成为“c:\user\alexander\desktop\”。然后我将桌面上的文件复制到桌面上已有的文件夹中system"copy#{argument3}*.*#{argument3}TestFolder"这也成功完成了我从cmd输出和检查文件夹本身验证的结果。最后,我尝试将文件名保存到路径为“c:\user\alexander\desktop\log.txt”的日志

Ruby 1.9.3 Dir.glob 奇怪的递归匹配行为

假设目录结构为:a/b/c/d/e/f/g/h我试图通过以下方式找到“h”:Dir.glob('a/**/f/g/h')但是这不起作用。有什么想法吗?您可以尝试下面的测试用例:$/usr/bin/ruby-vruby1.9.3p194(2012-04-20revision35410)[x86_64-linux]$mkdir-pa/b/c/d/e/f/g/h$ruby-e"putsDir.glob('a/**/*')"a/ba/b/ca/b/c/da/b/c/d/ea/b/c/d/e/fa/b/c/d/e/f/ga/b/c/d/e/f/g/h$ruby-e"putsDir.glob('a

ruby - Ruby 的 Dir.glob() 最简洁的 Clojure 等价物是什么?

在Clojure中做这样的事情最简单的方法是什么?require'csv'Dir["data/*.csv"].eachdo|file|File.readlines(file).eachdo|line|x,y,z=*CSV.parse_line(line)#processthisdataendend 最佳答案 这是我见过的最短的:(require'[clojure.java.io:asio])(filter#(.endsWith(.getName%)".csv")(file-seq(io/filedir))))来自https://gi

ruby - Dir.glob 获取文件夹中的所有 csv 和 xls 文件

folder_to_analyze=ARGV.firstfolder_path=File.join(Dir.pwd,folder_to_analyze)unlessFile.directory?(folder_path)puts"Error:#{folder_path}noesunfoldervalido."exitenddefget_csv_file_paths(path)files=[]Dir.glob(path+'/**/*.csv').eachdo|f|files我正在尝试在Ruby中制作一个简单的脚本,允许我从命令行调用它,例如rubycounter.rbmailing_li

ruby-on-rails - Rails catch-all/globbing 路线

我使用的是rails3.0.14,我正在使用足智多谋的风格构建routes.rb。我想要一个通配符路由来捕获所有与任何所述路由不匹配的请求。构建这样一条路由的合适方法是什么? 最佳答案 放match'*path'=>'your_controller#your_action'在routes.rb文件的末尾。这很重要,因为路线是自上而下逐步进行的。另见http://guides.rubyonrails.org/routing.html->3.10 关于ruby-on-rails-Railsc