没有相应的文件和目录?

时间:2014-05-03 12:00:47

标签: ruby regex

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.注意我确定该文件并且它存在。

2 个答案:

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