【发布时间】:2020-01-19 12:53:38
【问题描述】:
def file_to_array(filename)
my_text = []
File.open(filename, "r").each do |line|
my_text << line
end
my_text
end
你好!我的方法应该在调用时接收文件名,打开文件并将每一行移动到一个数组中。但是,它在调用时会引发undefined local variable,我假设它与文件名[DOT]ext 有关系?!
我的调用发生在下面的方法中
def clean_array
cleaned = file_to_array(text.txt).map do |element|
element.gsub(/\b['s\!\.\\n]*/m, "")
end
cleaned.map! do |el|
el.split(" ")
end
return cleaned.flatten!
#p cleaned
end
【问题讨论】:
-
顺便说一句,在这种情况下,您可以使用方法IO::read 将文件“吞下”到一个数组中:
def file_to_array(filename); IO.read(filename); end。通常你会看到File.read(filename)而不是IO.read(filename)。没关系,因为File是IO的子类,因此继承了后者的方法。在内存考虑要求您需要逐行读取文件的情况下,IO::foreach 通常是首选方法。
标签: ruby string methods parameters