从文本文件中绘制随机数

时间:2014-01-31 12:52:57

标签: ruby

所以我有这个代码将一些数字放入文本文件中。

outFile = File.new("Demo.txt", "a+")
outFile.puts (1..5).map{ '%05d' % rand(00000..99999) }
outFile.close
puts File.read("Demo.txt")

我想知道我是否可以抽出一个已创建的随机数。

1 个答案:

答案 0 :(得分:2)

我会这样做:

File.open("Demo.txt", "a+") do |file|
  file.puts (1..5).map{ '%05d' % rand(00000..99999) }
end
# give you any random number from the file
puts File.readlines("Demo.txt").map(&:strip).sample 

IO::readlines会将您放在文件"Demo.txt"中的所有数字作为Array。现在Array#sample,将选择一个随机元素

为什么我使用IO::open?请阅读以下内容:

  

如果没有关联的阻止,IO.open::new的同义词。 如果给出了可选的代码块,它将作为参数传递给io,当块终止时,IO对象将自动关闭。在这个例子中,{{ 1}}返回块的值。