我想从包含大约200个文本文件的目录中读取文件行,但是,我无法让Ruby逐行读取它们。我之前做过,使用一个文本文件,而不是从目录中读取它们。如何从目录逐行打开和读取文件?
我可以获取文件名作为字符串,但我努力打开它们并阅读每一行。
以下是我尝试过的一些方法。
方法1:
def readdirectory
@filearray = []
Dir.foreach('mydirectory') do |i|
# puts i.class
@filearray.push(i)
@filearray.each do |s|
# @words =IO.readlines('s')
puts s
end#do
# puts @words
end#do
end#readdirectory
方法2:
def tryread
Dir.foreach('mydir'){
|x| IO.readlines(x)
}
end#tryread
方法3:
def tryread
Dir.foreach('mydir') do |s|
File.readlines(s).each do |line|
sentence =line.split
end#inner do
end #do
end#tryread
随着每一次试图打开循环函数传递的字符串,我不断收到错误:
Permission denied - . (Errno::EACCES)
因此,您无权读取文件。 – 2013-02-13 14:45:03
@SergioTulentsev说的+1。错误代码说明了主要/第一个问题。 'readlines'不是'File.foreach',因为它在#2和#3中更具可扩展性。 – 2013-02-13 15:05:00