我正在尝试创建一个程序来计算我创建的文本文件中的单词频率。我有一个标题为moms_letter.txt
的文本文件,这是我的代码:
word_count = {}
File.open("moms_letter.txt", "r") do |f|
f.each_line do |line|
words = line.split(' ').each do |word|
word_count[word] += 1 if word_count.has_key? word
word_count[word] = 1 if not word_count.has_key? word
end
end
end
puts word_count
我得到的问题是当我去运行文件时,我收到错误:
there is no such file or directory - moms_letter.txt (Errno: : ENOENT)
当我创建文本文件时,不太确定为什么会这样。 任何帮助表示赞赏。
我也是Ruby的新手,所以感谢耐心。
答案 0 :(得分:1)
您必须从moms_letter.txt
文件所在的目录之外执行您的程序。您需要使用绝对路径来打开文件。或者,始终从.txt
所在的目录执行您的程序。因此,不要使用"moms_letter.txt"
与"complete/path/to/file/moms_letter.txt"
一起使用。
答案 1 :(得分:0)
我也是Ruby的新手,但最近有一些文本文件。这似乎是一个显而易见的问题,但是您尝试在与.rb文件相同的目录中打开的文本文件是什么?否则,您需要包含相对路径。
为了排查故障,请尝试File.new("temp.txt", "w")
,然后File.open("temp.txt", "r")
,看看是否有效。然后,您将知道您的代码或您尝试访问的txt文件是否存在问题。
同样使用File.exists?("moms_letter.txt")
将帮助您确定是否可以从.rb脚本中访问该文件。
希望有所帮助!