folder_to_analyze = ARGV.first
folder_path = File.join(Dir.pwd, folder_to_analyze)
unless File.directory?(folder_path)
puts "Error: #{folder_path} no es un folder valido."
exit
end
def get_csv_file_paths(path)
files = []
Dir.glob(path + '/**/*.csv').each do |f|
files << f
end
return files
end
def get_xlsx_file_path(path)
files = []
Dir.glob(path + '/**/*.xls').each do |f|
files << f
end
return files
end
files_to_process = []
files_to_process << get_csv_file_paths(folder_path)
files_to_process << get_xlsx_file_path(folder_path)
puts files_to_process[1].length # Not what I want, I want:
# puts files_to_process.length
Я пытаюсь сделать простой script в Ruby, который позволяет мне вызывать его из командной строки, например ruby counter.rb mailing_list1
, и он переходит в папку и учитывает все файлы .csv и .xls.
Я намерен работать с каждым файлом, получая количество строк и т.д.
В настоящее время массив files_to_process
на самом деле является массивом массива - я этого не хочу. Я хочу иметь один массив из файлов .csv и .xls.
Так как я не знаю, как уступить из вызова Dir.glob
, я добавил их в массив и вернул это.
Как это сделать, используя один массив?