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?
答案 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 }