Ruby给了我这个错误:
C:/Ruby/new.rb:11:in `read': No such file or directory - m.txt (Errno::ENOENT)
from C:/Ruby/new.rb:11:in `<main>'
但我确定有这样的文件,这是我的代码:
text = File.read("m.txt").split('\n')
text.each do |x|
x.to_i
File.open("m.txt", "w") do |file|
file.gsub(x, x *10)
end
end
产生此错误的行:
text = File.read("m.txt").split('\n')
我查了几个例子,例如:How can I read a file with Ruby?
尝试过这样的事情:
File.open("m.txt", "r+") do |infile|
while (line = infile.gets)
line.to_i.gsub(line, line *10)
end
end
但我仍然收到此错误。
我想要做的是:我在文本文件中有一些数字,如
12.2
432.3
3.43
0.342
...
我想将每一个乘以10.注意我确定该文件并且它存在。
答案 0 :(得分:1)
您必须提供绝对路径:
text = File.read("C:/Ruby/m.txt").split('\n')
因为您当前的目录与脚本的目录不同。
或者,您应该导航到该特定文件夹,然后运行该脚本。
答案 1 :(得分:0)
你可以这样做:
text = File.read("C:/Ruby/m.txt").split('\n')
File.open("C:/Ruby/m.txt", "w") do |file|
text.each do |x|
file.puts x.to_f * 10
end
end