0

长期潜伏者,第一次发帖!我是 Ruby 的新手,所以我希望得到一些帮助。

我有一个大文本文件,其中包含一个由中断分隔的文件列表,所以它看起来像这样:

ARO_9501.jpg
ARO_9506.jpg
IMG_1499.jpg
IMG_1511.jpg

如何将此文本文件放入数组中,以便可以在其上调用 .each 并将文件复制到另一个目录?

4

2 回答 2

0

您也可以使用以下方式IO::readlines

ar = File.open("/home/kirti/ruby/foo.txt","r") do |fil|
    fil.readlines.map(&:strip)
end
p ar
# >> ["ARO_9501.jpg", "ARO_9506.jpg", "IMG_1499.jpg", "IMG_1511.jpg"]

根据@steenslag 评论:

ar = File.readlines("/home/kirti/ruby/foo.txt").map(&:chomp)
ar # => [ "ARO_9501.jpg", "ARO_9506.jpg", "IMG_1499.jpg", "IMG_1511.jpg"]
于 2013-09-25T20:47:25.790 回答
0

这就是我通常的做法:

fileNameArray = File.read("/path/to/file.txt").split("\n")

或者,如果您只需要遍历文件名并且不一定需要包含名称的数组(看起来您不需要),我通常使用这个:

File.read("/path/to/file.txt").each_line do |line|
  # do operations using line
end

文档
IO::read:(File扩展IO)和
String .split()each_line()

于 2013-09-25T20:52:18.590 回答