Ruby: 如何将多个 .txt 文件中的每一行存储到一个变量中
Ruby: How to store each line from many .txt files into one variable
我必须将位于不同目录中的 .txt 文件中的几行存储到变量中,但我不知道如何。
这是我用于打印这些 .txt 文件中的每一行的代码,它工作正常,但我不知道如何将它们存储到一个变量中。
Dir.chdir "/path/to/dir"
Dir.glob("**/*.{mo,txt}").each do |filename|
File.open(filename, "r") do |f|
f.each_line do |line|
puts line
end
end
end
我是 ruby 的初学者所以请帮忙!!
数组最适合这个
array = []
Dir.chdir "/path/to/dir"
Dir.glob("**/*.{mo,txt}").each do |filename|
File.open(filename, "r") do |f|
f.each_line do |line|
array << line.gsub(/[\r\n]+/, ' ')
end
end
end
如果您想要替代解决方案:
Dir.glob("**/*.{mo,txt}").each do |filename|
File.foreach(filename).map { |line| array << line.gsub(/[\r\n]+/, ' ') }
end
在线替换的正则表达式是为了删除任何不需要的换行符。所以一个文件由
组成
1
2
3
4
5
没有正则表达式,将用以下内容填充您的数组:
["1\n", "2\n", "3\n", "4\n", "5\n"]
使用正则表达式,将用以下内容填充您的数组:
["1", "2", "3", "4", "5"]
我必须将位于不同目录中的 .txt 文件中的几行存储到变量中,但我不知道如何。
这是我用于打印这些 .txt 文件中的每一行的代码,它工作正常,但我不知道如何将它们存储到一个变量中。
Dir.chdir "/path/to/dir"
Dir.glob("**/*.{mo,txt}").each do |filename|
File.open(filename, "r") do |f|
f.each_line do |line|
puts line
end
end
end
我是 ruby 的初学者所以请帮忙!!
数组最适合这个
array = []
Dir.chdir "/path/to/dir"
Dir.glob("**/*.{mo,txt}").each do |filename|
File.open(filename, "r") do |f|
f.each_line do |line|
array << line.gsub(/[\r\n]+/, ' ')
end
end
end
如果您想要替代解决方案:
Dir.glob("**/*.{mo,txt}").each do |filename|
File.foreach(filename).map { |line| array << line.gsub(/[\r\n]+/, ' ') }
end
在线替换的正则表达式是为了删除任何不需要的换行符。所以一个文件由
组成1
2
3
4
5
没有正则表达式,将用以下内容填充您的数组:
["1\n", "2\n", "3\n", "4\n", "5\n"]
使用正则表达式,将用以下内容填充您的数组:
["1", "2", "3", "4", "5"]