Ruby 代码查找特定文件并重命名它,不起作用?

标签 ruby linux

我正在尝试在 Linux 机器上使用 Ruby 生成缩略图。

该过程包括确定已生成的 5 个缩略图中哪一个最有意义(这里所说的“有意义”是指选择尺寸最大的缩略图,因为尺寸越大意味着更多细节)。

后来我把最大的文件重命名为通用名称,以便以后使用。代码似乎对我不起作用,我无法理解原因,有什么建议可以改进吗?

提前谢谢您。

这是我的代码:

为了满足您可能的需求,变量thumb_dir包含我们从中获取缩略图的目录的路径。

max = File.size("#{thumb_dir}/thumb01.jpg").to_f #
name = "thumb01.jpg"

for i in 2..5
  if max < File.size("#{thumb_dir}/thumb0'"#{i}"'.jpg" ).to_f?
    max = File.size("#{thumb_dir}/thumb0'"{i}"'.jpg"
    name = "thumb0" + "#{i}" + ".jpg"
  end
end

File.rename("#{thumb_dir}/#{name}", "thumbnail.jpg") `

最佳答案

i = (1..5).map {|i| File.size("#{thumb_dir}/thumb#{i}.jpg").to_f }.each_with_index.max[1]

File.rename("#{thumb_dir}/thumb#{i + 1}.jpg", "thumbnail.jpg")

它有什么作用?

  1. (1..5).map {|i| File.size("#{thumb_dir}/thumb#{i}.jpg").to_f }

我们得到了一个文件大小的数组,从thumb1.jpg到thumb5.jpg

  • array.each_with_index.max[1]
  • 用于获取数组中最大值的索引。

  • File.rename("#{thumb_dir}/thumb#{i+1}.jpg", "thumbnail.jpg")
  • 现在我们知道 i 是数组中最大值的索引,那么 thumb#{(i+1)}.jpg 就是大小最大的文件,因此这就是我们要替换其名称的文件。

    关于Ruby 代码查找特定文件并重命名它,不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37470211/

    相关文章:

    ruby - hpricot-UTF-8 中的无效字节序列

    jquery - Facebook 社交按钮在 jquery/rails 中不起作用

    linux 将 localhost 端口重定向到 url 端口

    linux - 在 Amazon EC2 实例上安装 librsync

    ruby - 想了解 EM-Synchrony 、em-http-request 和 Fiber 之间的关系吗?

    python - 在 Python 中卡住?

    ruby-on-rails - 如何在 Ruby-On-Rails 应用程序的用户模型中存储数组?

    linux - SSH 在终端中有效,但在 shell 脚本中无效

    linux - 如何从 Linux 命令行调用 MATLAB 函数?

    linux - 每个模式的强度