如何将文本文件中的每个数字乘以10

时间:2014-05-03 13:34:47

标签: ruby regex

I've been working on this for a while

但无论我尝试什么,它只修改第一行,而我想将每个数字多重修改10。 例如:

  

1
  2
  3.3
  4.5   。   。   

应该是:

  

10
  20个
  33个
  45

但我得到的是:

  

10.0

只有

我已经从stackoverflow问题中提出了这个问题,并对其进行了修改但结果仍然相同:

f = File.open("c:/Ruby/m.txt", "r+")
f.each_line do |line|
  f.write( line.to_f * 10)
end
f.close

如果我尝试使用f.puts,我会收到一个错误:puts是一个私有方法吗?如何将每个数字乘以10?

2 个答案:

答案 0 :(得分:3)

我认为你最好先阅读文件,然后再写一下:

lines = File.readlines("c:/Ruby/m.txt").to_a
f = File.open("c:/Ruby/m.txt", "w")
lines.each do |line|
  f.write((line.to_f * 10).to_i)
end
f.close

答案 1 :(得分:2)

lines = File.readlines("c:/Ruby/m.txt")
new_lines = lines.map { |line| (line.to_f * 10).to_i }

File.open("c:/Ruby/m.txt", "w") { |f| f.puts new_lines }