Ruby 打开数组中的所有文件,并将文件内容添加到新数组中
我想获取特定类型文件夹中所有文件的内容,并将其内容添加到数组中。因为Ruby 打开数组中的所有文件,并将文件内容添加到新数组中,ruby,Ruby,我想获取特定类型文件夹中所有文件的内容,并将其内容添加到数组中。因为File.open只接受字符串,所以我不知道该怎么做。我认为最接近的是: Dir.glob(*).each do|file| filearray = File.open(file).read 但除此之外,我还不知道如何将输出放入数组变量中,以便以后代码的其他部分使用。s\u folder\u path='C:/Test' s_folder_path = 'C:/Test' a_files = [] Dir.foreach
File.open
只接受字符串,所以我不知道该怎么做。我认为最接近的是:
Dir.glob(*).each do|file|
filearray = File.open(file).read
但除此之外,我还不知道如何将输出放入数组变量中,以便以后代码的其他部分使用。s\u folder\u path='C:/Test'
s_folder_path = 'C:/Test'
a_files = []
Dir.foreach(s_folder_path).each do |file|
a_files << File.open("#{s_folder_path}/#{file}").read if file != "." && file != ".."
end
puts a_files.inspect
a_文件=[]
Dir.foreach(s|u文件夹|路径)。每个do |文件|
a_filess_文件夹路径='C:/Test'
a_文件=[]
Dir.foreach(s|u文件夹|路径)。每个do |文件|
a_files你基本上拥有它,但是像这样的东西怎么样
filearray = Dir.glob('*').select { |f| File.file?(f) }.map { |f| File.read(f) }
select
位只是确保您只拉入文件(而不是目录)。如果您有一个特定的文件扩展名,您也可以将其添加到glob
调用中-例如,如果您要查找所有.rb文件,您可以使用'*.rb'
而不是'*'
您基本上拥有它,但是类似这样的东西呢
filearray = Dir.glob('*').select { |f| File.file?(f) }.map { |f| File.read(f) }
select
位只是确保您只拉入文件(而不是目录)。如果您有特定的文件扩展名,也可以将其添加到glob
调用中-例如,如果您要查找所有.rb文件,可以使用'*.rb'
而不是'*'
此目录中的文件有多大?这可能会使您的系统停止。共有14个文件,最大的是800KB。此目录中的文件有多大?这可能会使您的系统停止。共有14个文件,最大的是800kb